typescript-pro
TypeScriptの高度な型システムを実装し、カスタム型ガード、ユーティリティ型、ブランド型を作成します。また、tRPCを設定してエンドツーエンドの型安全性を確保できます。高度なジェネリクス、条件付き型またはマップ型、判別されたユニオン型を必要とするTypeScriptアプリケーション、モノレポ構成、またはtRPCによるフルスタック型安全性を構築する場合に使用してください。
description の原文を見る
Implements advanced TypeScript type systems, creates custom type guards, utility types, and branded types, and configures tRPC for end-to-end type safety. Use when building TypeScript applications requiring advanced generics, conditional or mapped types, discriminated unions, monorepo setup, or full-stack type safety with tRPC.
SKILL.md 本文
TypeScript Pro
コア ワークフロー
- 型アーキテクチャを分析 - tsconfig、型カバレッジ、ビルドパフォーマンスをレビューします
- 型優先 API を設計 - ブランド型、ジェネリクス、ユーティリティ型を作成します
- 型安全性とともに実装 - 型ガード、判別型、条件付き型を記述します;
tsc --noEmitを実行して、進める前に型エラーをキャッチします - ビルドを最適化 - プロジェクト参照、段階的なコンパイル、ツリーシェイキングを構成します;変更後に
tsc --noEmitを再実行して、ゼロエラーを確認します - 型をテスト -
type-coverageなどのツールで型カバレッジを確認します;すべてのパブリック API が明示的な戻り値の型を持つことを検証します;すべてのチェックに合格するまでステップ 3~4 を繰り返します
リファレンス ガイド
コンテキストに基づいて詳細なガイダンスを読み込みます:
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| 高度な型 | references/advanced-types.md | ジェネリクス、条件付き型、マップされた型、テンプレート リテラル |
| 型ガード | references/type-guards.md | 型の絞り込み、判別型、アサーション関数 |
| ユーティリティ型 | references/utility-types.md | Partial、Pick、Omit、Record、カスタム ユーティリティ |
| 構成 | references/configuration.md | tsconfig オプション、strict モード、プロジェクト参照 |
| パターン | references/patterns.md | ビルダー パターン、ファクトリ パターン、型安全 API |
コード例
ブランド型
// Branded type for domain modeling
type Brand<T, B extends string> = T & { readonly __brand: B };
type UserId = Brand<string, "UserId">;
type OrderId = Brand<number, "OrderId">;
const toUserId = (id: string): UserId => id as UserId;
const toOrderId = (id: number): OrderId => id as OrderId;
// Usage — prevents accidental id mix-ups at compile time
function getOrder(userId: UserId, orderId: OrderId) { /* ... */ }
判別型と型ガード
type LoadingState = { status: "loading" };
type SuccessState = { status: "success"; data: string[] };
type ErrorState = { status: "error"; error: Error };
type RequestState = LoadingState | SuccessState | ErrorState;
// Type predicate guard
function isSuccess(state: RequestState): state is SuccessState {
return state.status === "success";
}
// Exhaustive switch with discriminated union
function renderState(state: RequestState): string {
switch (state.status) {
case "loading": return "Loading…";
case "success": return state.data.join(", ");
case "error": return state.error.message;
default: {
const _exhaustive: never = state;
throw new Error(`Unhandled state: ${_exhaustive}`);
}
}
}
カスタム ユーティリティ型
// Deep readonly — immutable nested objects
type DeepReadonly<T> = {
readonly [K in keyof T]: T[K] extends object ? DeepReadonly<T[K]> : T[K];
};
// Require exactly one of a set of keys
type RequireExactlyOne<T, Keys extends keyof T = keyof T> =
Pick<T, Exclude<keyof T, Keys>> &
{ [K in Keys]-?: Required<Pick<T, K>> & Partial<Record<Exclude<Keys, K>, never>> }[Keys];
推奨 tsconfig.json
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"exactOptionalPropertyTypes": true,
"isolatedModules": true,
"declaration": true,
"declarationMap": true,
"incremental": true,
"skipLibCheck": false
}
}
制約
必須(MUST DO)
- strict モードをすべてのコンパイラ フラグで有効にする
- 型優先 API 設計を使用する
- ドメイン モデリング用にブランド型を実装する
- 型検証に
satisfies演算子を使用する - ステートマシン用に判別型を作成する
- 型述語を使用した
Annotatedパターンを使用する - ライブラリ用にデクラレーション ファイルを生成する
- 型推論に最適化する
禁止(MUST NOT DO)
- 正当な理由なしに明示的な
anyを使用しない - パブリック API の型カバレッジをスキップしない
- 型のみのインポートと値のインポートを混在させない
- strict null チェックを無効にしない
- 必要のない
asアサーションを使用しない - コンパイラ パフォーマンスの警告を無視しない
- デクラレーション ファイルの生成をスキップしない
- Enum を使用しない(
as constを使用した const オブジェクトを推奨)
出力テンプレート
TypeScript 機能を実装する際は、以下を提供します:
- 型定義(インターフェース、型、ジェネリクス)
- 型ガードを備えた実装
- 必要に応じて tsconfig 構成
- 型設計の決定についての簡潔な説明
ナレッジ リファレンス
TypeScript 5.0+、ジェネリクス、条件付き型、マップされた型、テンプレート リテラル型、判別型、型ガード、ブランド型、tRPC、プロジェクト参照、段階的なコンパイル、デクラレーション ファイル、const アサーション、satisfies 演算子
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- cedriclefoudelatech
- ライセンス
- MIT
- 最終更新
- 2026/5/10
Source: https://github.com/cedriclefoudelatech/TIMLEMEILLEURIDF / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。