fp-ts-errors
fp-ts 오류 처리를 TypeScript에서 마스터하세요
try/catch 스파게티 코드와의 싸움을 그만하세요. 예측 가능하고 구성 가능한 오류 처리를 위해 fp-ts Either와 TaskEither를 사용하여 타입 안전 값을 오류로 처리하는 방법을 배우세요.
스킬 ZIP 다운로드
Claude에서 업로드
설정 → 기능 → 스킬 → 스킬 업로드로 이동
토글을 켜고 사용 시작
테스트해 보기
"fp-ts-errors" 사용 중입니다. 유효하지 않은 이메일, 짧은 비밀번호, 누락된 age로 사용자 등록 양식 검증
예상 결과:
Left(['유효하지 않은 이메일 형식', '비밀번호는 최소 8자 이상이어야 합니다', 'Age는 필수입니다']) - 세 가지 검증 오류가 모두 함께 반환됨, 첫 번째 오류에서 실패하지 않음
"fp-ts-errors" 사용 중입니다. getUser(userId), getProduct(productId), createOrder(user, product)를 체이닝其中 getUser가 Left('User not found')를 반환
예상 결과:
Left('User not found') - 체인이 첫 번째 실패에서 중지됨, 후속 작업은 실행되지 않으며, 오류가 깔끔하게 전파됨
"fp-ts-errors" 사용 중입니다. TaskEither로 사용자 데이터 가져오기, 네트워크 요청이 연결 오류로 실패
예상 결과:
Left({ code: 'NETWORK', message: '서버 연결에 실패했습니다' }) - 프로그래밍 방식 처리를 위한 오류 코드와 표시용 인간이 읽을 수 있는 메시지가 있는 구조화된 오류
보안 감사
안전This skill is educational documentation teaching fp-ts error handling patterns in TypeScript. The static analyzer produced 127 false positives by misidentifying Markdown code block backticks as shell commands. All network references are code examples demonstrating TaskEither usage, not executable code. No actual command execution, network calls, or system access exists in this skill.
품질 점수
만들 수 있는 것
오류 축적형 폼 검증
첫 번째 오류에서 실패하는 대신 모든 검증 오류를 한 번에 수집하여 사용자 입력 폼을 검증합니다.
API 오류 처리 파이프라인
네트워크 오류, HTTP 상태 코드, JSON 파싱 실패를 타입화된 오류 결과로 처리하는 강력한 API 레이어를 구축합니다.
데이터베이스 작업 체인
모든 실패가 예외를 발생시키지 않고 구조화된 오류를 반환하는 여러 데이터베이스 작업을 체이닝합니다.
이 프롬프트를 사용해 보세요
이 함수를 예외를 발생시키는 대신 fp-ts Either를 사용하도록 변환하는 것을 도와주세요: [함수를 붙여넣으세요]. fold로 오류 케이스를 처리하는 방법을 보여주세요.
다음 세 가지 작업을 체이닝해야 합니다: getUser, validatePermissions, createResource. 각각 서로 다른 오류 타입으로 실패할 수 있습니다. fp-ts Either를 사용하여它们를 결합하는 방법을 보여주세요.
fp-ts를 사용하여 이메일, 비밀번호, age 필드를 검증하는 폼 검증기를 생성하세요. 첫 번째 오류가 아닌 한 번에 모든 오류를 수집하기 위해 validation applicative를 사용하세요.
이 fetch 호출을 TaskEither로 래핑하고 지수 백오프가 있는 재시도 로직을 추가하는 방법을 보여주세요. 네트워크 오류와 200이 아닌 HTTP 응답 모두를 구조화된 오류 타입으로 처리하세요.
모범 사례
- 예외를 발생시키는 코드를 경계(외부 API, 파일 I/O, JSON 파싱)에서 래핑하고 내부에서는 Either를 반환하세요
- 더 나은 타입 안전성을 위해 일반 문자열 대신 설명적인 오류 타입(유니온 또는 인터페이스)을 사용하세요
- 게으른 평가를 유지하고 조기 실행을 피하기 위해 비동기 작업에 TaskEither를 적용하세요
피하기
- 체인에서 fold를 너무 일찍 호출 - 각 단계 후가 아닌 마지막에 오류를 처리하세요
- Either와 발생시킨 예외를 혼합 - 하나의 오류 처리 전략에 지속적으로 충실하세요
- 예상되는 제어 흐름(예: 'not found')에 Left를 사용 - 실제 예외적인 경우에 오류를 예약하세요