typescript-magician
複雑なジェネリック型の設計、`any` 型の厳格な型への置き換え、型ガードやユーティリティ型の作成、TypeScriptコンパイラエラーの解消を行います。TypeScriptの型・ジェネリクス・型推論・型ガード・`any` 型の排除・厳格な型付け・型エラー・`infer`・`extends`・条件型・マップ型・テンプレートリテラル型・ブランド型、または `Partial`・`Record`・`ReturnType`・`Awaited` などのユーティリティ型について質問がある場合に活用してください。
description の原文を見る
Designs complex generic types, refactors `any` types to strict alternatives, creates type guards and utility types, and resolves TypeScript compiler errors. Use when the user asks about TypeScript (TS) types, generics, type inference, type guards, removing `any` types, strict typing, type errors, `infer`, `extends`, conditional types, mapped types, template literal types, branded/opaque types, or utility types like `Partial`, `Record`, `ReturnType`, and `Awaited`.
SKILL.md 本文
使用時機
このスキルは以下のような場面で使用します:
- TypeScript エラーと型チャレンジ
- コードベースから
any型を除去 - 複雑なジェネリクスと型推論の問題
- 厳密な型付けが必要な場合
手順
呼び出された場合:
tsc --noEmitを実行して、変更前に完全なエラー出力をキャプチャ- 型の問題の根本原因を特定 (不健全な推論、制約の欠如、暗黙的な
anyなど) - 高度な TypeScript 機能を使用して正確で型安全なソリューションを作成
- すべての
any型を適切な型付けで除去 — 呼び出し元で各置換が満たされることを検証 - 2 回目の
tsc --noEmitパスで修正がクリーンにコンパイルされることを確認
機能には以下が含まれます:
- 高度なジェネリクスと条件型
- テンプレートリテラル型とマップ型
- ユーティリティ型と型操作
- ブランド型と名義型付け
- 複雑な推論パターン
- 変動性と分配規則
- モジュール拡張と宣言マージ
すべての TypeScript チャレンジに対して:
- 問題の背後にある型理論を説明
- 適切な場合は複数のソリューション アプローチを提供
- 変更前後の型表現を表示
- 包括的な型テストを含める
- 完全な IntelliSense サポートを確保
クイック例
ジェネリクスで any を除去
変更前
function getProperty(obj: any, key: string): any {
return obj[key];
}
変更後
function getProperty<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
// getProperty({ name: "Alice" }, "name") → string として推論 ✓
不明な API レスポンスを絞り込み
変更前
async function fetchUser(): Promise<any> {
const res = await fetch("/api/user");
return res.json();
}
変更後
interface User { id: number; name: string }
function isUser(value: unknown): value is User {
return (
typeof value === "object" &&
value !== null &&
"id" in value &&
"name" in value
);
}
async function fetchUser(): Promise<User> {
const res = await fetch("/api/user");
const data: unknown = await res.json();
if (!isUser(data)) throw new Error("Invalid user shape");
return data;
}
リファレンス
詳しい説明とコード例については、個別のルール ファイルを参照してください:
コアパターン
rules/as-const-typeof.md-as constとtypeofを使用してランタイム値から型を導出rules/array-index-access.md-[number]インデックスを使用して配列要素型にアクセスrules/utility-types.md- ビルトイン ユーティリティ型: Parameters, ReturnType, Awaited, Omit, Partial, Record
高度なジェネリクス
rules/generics-basics.md- ジェネリック型、制約、推論の基礎rules/builder-pattern.md- チェーン可能なメソッドを使用した型安全ビルダーパターンrules/deep-inference.md- F.Narrow と const 型パラメータで深い型推論を実現
型レベルプログラミング
rules/conditional-types.md- 型レベルの if/else ロジック用の条件型rules/infer-keyword.md- 条件型内で型を抽出するinferの使用rules/template-literal-types.md- 型レベルでの文字列操作rules/mapped-types.md- 既存の型プロパティを変換して新しい型を作成
型安全パターン
rules/opaque-types.md- 型安全な識別子用のブランド型と不透明型rules/type-narrowing.md- 制御フロー分析を通じて型を絞り込みrules/function-overloads.md- 複雑な関数シグネチャ用の関数オーバーロードの使用
デバッグ
rules/error-diagnosis.md- TypeScript 型エラーの診断と理解の戦略
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- mcollina
- リポジトリ
- mcollina/skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/mcollina/skills / ライセンス: MIT
関連スキル
agent-browser
AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。
anyskill
AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。
engram
AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。
skyvern
AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。
pinchbench
PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。
openui
OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。