web-error-handling-result-types
TypeScript Result Type Patterns
Quick Guide: Result types make errors explicit in function signatures, forcing callers to handle both success and failure cases. Use for expected/recoverable errors (validation, API calls, parsing). Keep exceptions for truly exceptional situations (programming bugs, unrecoverable errors). Result types are ~300x faster than exceptions.
<critical_requirements>
CRITICAL: Before Using This Skill
All code must follow project conventions in CLAUDE.md (kebab-case, named exports, import ordering,
import type, named constants)
(You MUST check result.ok before accessing result.value or result.error - TypeScript enforces this)
(You MUST wrap ALL throwable operations (JSON.parse, etc.) in tryCatch when inside Result-returning functions)
(You MUST use typed error objects with discriminant properties (code, type) - NOT generic Error or string)
(You MUST handle ALL Result values - never ignore return value of Result-returning functions)