fp-ts-errors について
fp-ts-errorsは、明示的で型安全なエラー処理が必要なTypeScript開発者向けの実践的なスキルです。fp-tsのEitherとTaskEitherを使い、失敗を値として扱う方法や検証エラーの集約を説明します。
主な機能
- 01Eitherによるエラー値の表現
- 02TaskEitherによる副作用パターン
- 03API向けの明示的なエラー型
- 04複数の検証エラーの集約
- 05リトライと変更の安全性に関する指針
活用シーン
- 01try/catchの処理を型付き結果に置き換える
- 02APIに明示的なエラーを定義する
- 03複数の入力検証エラーを収集する
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill fp-ts-errorsインストール後、Claude Code で/fp-ts-errorsを入力して読み込まれたか確認します。
同梱ファイルreferences/detailed-guide.md
詳細
fp-ts を使った実践的なエラー処理
このスキルでは、try/catch が絡み合ったコードを書かずにエラーを処理する方法を学びます。学術的な専門用語は使わず、現実の問題に役立つ実践的なパターンを紹介します。
詳細ガイド
このスキルを実行する前に、詳細ガイドをお読みください。ガイドには、手順と参考資料がすべて記載されています。安全性、前提条件、検証に関する要件は必ず守ってください。特定の作業に取り組む場合は関連するセクションを読み、最初から最後まで作業する場合はガイド全体をお読みください。
このスキルを使う場面
- TypeScript で型安全なエラー処理を行いたい場合
- try/catch を Either および TaskEither のパターンに置き換える場合
- 明示的なエラー型が必要な API やサービスを構築する場合
- 複数の検証エラーを集約する場合
基本的な考え方は、エラーは単なるデータです。エラーを何もないところに投げて、誰かが捕捉してくれることを期待するのではなく、TypeScript が追跡できる値として返します。
制限事項
- タスクが上記の説明に明確に当てはまる場合に限り、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。
型と副作用の境界
これらは個別の断片であり、まとめてもコンパイル可能なモジュールにはなりません。インポート、ドメイン型、アプリケーション用ヘルパーは別途用意する必要があります。ここでの FormData は email/password/age フィールドを持つカスタムレコードを指し、ブラウザーの FormData クラスではありません。T.of を使う箇所では Task を T としてインポートし、一括処理の断片では Array を A としてインポートしてください。fp-ts の Either は無視することもできます。戻り値の型があっても、呼び出し元にその確認を強制することはできません。map/chain 内の関数は、明示的にラップされた境界の外で例外を投げてはいけません。また、TaskEither がすべての拒否を自動的に捕捉するわけではありません。
JSON の解析や as T は、構文や型アサーションを確認するものであり、実行時のデータ構造を確認するものではありません。実際のスキーマを使って unknown データをデコードしてください。認証または認可の失敗に対して、デフォルトユーザーへのフォールバックを使わないでください。一時的な障害が発生した冪等な操作に限ってリトライし、試行回数は正の整数、遅延時間は有限かつ上限内であることを検証してください。また、SDK のリトライや期限も考慮してください。ApplyPar はすべての操作を開始し、Left が発生しても兄弟タスクをキャンセルしません。一括処理の例では、並列実行数が無制限になるのを避けるため、タスクを逐次実行します。実際の変更処理では、認可、テナントの確認、冪等性、部分成功の整合性確認も必要です。生の原因、認証情報、送信されたパスワード値をログや UI に表示しないでください。TypeScript のコンパイルやサービスの操作は行っていません。