mcpField
T
ts-best-practices

ts-best-practices

github.com/poteto開発564291 回インストール32 週間前に更新
リポジトリ

ts-best-practices について

TypeScript を書く、またはレビューする開発者向けの規約スキルです。より安全な型設計、データ検証、すべての分岐を処理するためのルールを示します。

主な機能

  1. 01安全でない型アサーションの回避
  2. 02any より unknown を優先
  3. 03判別可能なユニオンで変種を表現
  4. 04検証済みの型ガードと型の絞り込み
  5. 05switch の網羅性チェック

活用シーン

  1. 01TypeScript の危険な型アサーションをレビュー
  2. 02境界で外部データを検証
  3. 03複数の形を持つデータの型を定義

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/poteto/noodle --skill ts-best-practices

インストール後、Claude Code で/ts-best-practicesを入力して読み込まれたか確認します。

同梱ファイルreferences/patterns.md

詳細

型安全性

このプロジェクトの TypeScript ポリシーです。TypeScript を記述またはレビューする際に適用してください。

ルール概要
as キャストは禁止すべての as は実行時クラッシュにつながる可能性があります。境界で検証し、根拠がある場合にのみキャストしてください。手動検証より Zod/Valibot を優先してください。
any より unknownany は、使われる箇所すべてで型チェックを無効にします。外部データは常に unknown としてください。
判別可能なユニオン共通のリテラル判別子を使ってバリアントをモデル化してください。省略可能なフィールドを詰め込んだ型は使わないでください。
型の絞り込みの優先順位次の順に優先してください:判別可能なユニオンの switch > in 演算子 > typeof/instanceof > 型ガード > as
型ガード主張を実際に検証する必要があります。名前は isX または hasX にしてください。可能な場合は判別子による絞り込みを優先してください。
網羅性チェック判別可能なユニオンに対する switch には、必ず default: never の分岐を追加してください。定型コードを減らすには absurd() ヘルパーを使ってください。
as より satisfies型を拡大せずに値が型に一致することを確認する場合は、リテラル型を保持するために satisfies を使ってください。
不可能な状態バグの調査で「この組み合わせは起こり得るか?」と確認する必要があるなら、型が緩すぎます。より厳密にしてください。

各ルールのコード例については、references/patterns.md を参照してください。

コメント