typescript
TypeScriptのパフォーマンス最適化、`tsc`コンパイルの高速化、`tsconfig.json`の設定、型エラー(TS2322・TS2339・「is not assignable to」など)の修正、非同期パターンの改善が必要な場合に使用するスキル。`.ts`・`.tsx`・`.d.ts`ファイルにおける型定義やモジュール構成、メモリ管理にも対応するが、TypeScriptの基礎学習やフレームワーク固有のパターン、テストは対象外。
description の原文を見る
This skill should be used when the user asks to "optimize TypeScript performance", "speed up tsc compilation", "configure tsconfig.json", "fix type errors", "improve async patterns", or encounters TS errors (TS2322, TS2339, "is not assignable to"). Also triggers on .ts, .tsx, .d.ts file work involving type definitions, module organization, or memory management. Does NOT cover TypeScript basics, framework-specific patterns, or testing.
SKILL.md 本文
TypeScript ベストプラクティス
TypeScript アプリケーションの包括的なパフォーマンス最適化ガイド。自動リファクタリングとコード生成を導くため、8 カテゴリーにわたる 45 のルールが影響度順に優先付けされています。
適用のタイミング
以下の場合にこのガイドラインを参照してください:
- 新規または既存プロジェクト用に tsconfig.json を設定する場合
- 複雑な型定義またはジェネリクスを記述する場合
- async/await パターンとデータ取得を最適化する場合
- モジュールを整理しインポートを管理する場合
- コンパイルまたはランタイムパフォーマンスのためにコードをレビューする場合
ルールカテゴリーの優先度
| 優先度 | カテゴリー | 影響度 | プレフィックス |
|---|---|---|---|
| 1 | 型システムパフォーマンス | CRITICAL | type- |
| 2 | コンパイラー設定 | CRITICAL | tscfg- |
| 3 | Async パターン | HIGH | async- |
| 4 | モジュール構成 | HIGH | module- |
| 5 | 型安全パターン | MEDIUM-HIGH | safety- |
| 6 | メモリ管理 | MEDIUM | mem- |
| 7 | ランタイム最適化 | LOW-MEDIUM | runtime- |
| 8 | 高度なパターン | LOW | advanced- |
目次
型システムパフォーマンス— CRITICAL- 1.1
エクスポートされた関数に明示的な戻り型を追加— CRITICAL (宣言出力が 30-50% 高速化) - 1.2
深くネストされたジェネリック型を回避— CRITICAL (指数関数的なインスタンス化コストを防止) - 1.3
大規模な共用型を回避— CRITICAL (二次 O(n²) 比較コストを軽減) - 1.4
条件型を名前付きエイリアスに抽出— CRITICAL (コンパイラーキャッシングを有効化、再評価を防止) - 1.5
型再帰の深さを制限— HIGH (該当時に指数関数的な型展開を防止) - 1.6
型交差よりもインターフェースを推奨— CRITICAL (型解析が 2-5 倍高速化) - 1.7
複雑なマップ型を単純化— HIGH (該当時に型計算を 50-80% 削減)
- 1.1
コンパイラー設定— CRITICAL- 2.1
Include と Exclude を適切に設定— CRITICAL (不要なファイルスキャン数千件を防止) - 2.2
インクリメンタルコンパイルを有効化— CRITICAL (リビルドが 50-90% 高速化) - 2.3
並列宣言出力用に isolatedDeclarations を有効化— CRITICAL (型チェッカーなしで並列 .d.ts 生成を有効化) - 2.4
高速ビルド用に skipLibCheck を有効化— CRITICAL (コンパイルが 20-40% 高速化) - 2.5
高速な分散チェック用に strictFunctionTypes を有効化— CRITICAL (最適化された分散チェックを有効化) - 2.6
Node.js ネイティブ TypeScript 用に erasableSyntaxOnly を使用— HIGH (Node.js 型削除ランタイムエラーの 100% を防止) - 2.7
単一ファイルトランスピレーション用に isolatedModules を使用— CRITICAL (バンドラーを使用した場合トランスピレーションが 80-90% 高速化) - 2.8
大規模コードベース用にプロジェクト参照を使用— CRITICAL (インクリメンタルビルドが 60-80% 高速化)
- 2.1
Async パターン— HIGH- 3.1
Async 関数の戻り型を注釈付ける— HIGH (ランタイムエラーを防止、推論を改善) - 3.2
ループ内の await を回避— HIGH (N 回の反復で N 倍高速化、10 ユーザー = 10 倍改善) - 3.3
不要な async/await を回避— HIGH (自明な Promise ラッパーを排除しスタックトレースを改善) - 3.4
値が必要になるまで await を遅延— HIGH (暗黙的な並列化を有効化) - 3.5
独立した操作に Promise.all を使用— HIGH (I/O バウンドコードで 2-10 倍改善)
- 3.1
モジュール構成— HIGH- 4.1
バレルファイルインポートを回避— HIGH (200-800ms インポートコスト、30-50% 大きなバンドル) - 4.2
循環依存を回避— HIGH (ランタイム undefined エラーと低速コンパイルを防止) - 4.3
@types パッケージの包含を制御— HIGH (型競合を防止しメモリ使用量を削減) - 4.4
大規模モジュール用に動的インポートを使用— HIGH (初期バンドルを 30-70% 削減) - 4.5
型専用の import 構文を使用— HIGH (型情報用のランタイムインポートを排除)
- 4.1
型安全パターン— MEDIUM-HIGH- 5.1
noUncheckedIndexedAccess を有効化— MEDIUM-HIGH (チェックされていないインデックスアクセスエラーの 100% をコンパイル時に防止) - 5.2
strictNullChecks を有効化— MEDIUM-HIGH (null/undefined ランタイムエラーを防止) - 5.3
any より unknown を推奨— MEDIUM-HIGH (型絞り込みを強制しランタイムエラーを防止) - 5.4
検証用にアサーション関数を使用— MEDIUM-HIGH (検証ボイラープレートを 50-70% 削減) - 5.5
リテラル型用に const アサーションを使用— MEDIUM-HIGH (リテラル型を保持し推論を改善) - 5.6
共用型に網羅的チェックを使用— MEDIUM-HIGH (欠落ケースエラーの 100% をコンパイル時に防止) - 5.7
ランタイム型チェック用に型ガードを使用— MEDIUM-HIGH (型アサーションを排除し境界でエラーをキャッチ)
- 5.1
メモリ管理— MEDIUM- 6.1
クロージャーメモリリークを回避— MEDIUM (長命コールバック内の保持参照を防止) - 6.2
グローバル状態の蓄積を回避— MEDIUM (無制限のメモリ成長を防止) - 6.3
イベントリスナーをクリーンアップ— MEDIUM (無制限のメモリ成長を防止) - 6.4
タイマーと間隔をクリア— MEDIUM (コールバック保持と重複実行を防止) - 6.5
オブジェクトメタデータに WeakMap を使用— MEDIUM (メモリリークを防止し自動クリーンアップを有効化)
- 6.1
ランタイム最適化— LOW-MEDIUM- 7.1
ホットループ内のオブジェクトスプレッドを回避— LOW-MEDIUM (オブジェクト割り当てを N 倍削減) - 7.2
ループ内のプロパティアクセスをキャッシュ— LOW-MEDIUM (ホットパス内のプロパティ参照を N 倍削減) - 7.3
Lodash より Lodash ネイティブ配列メソッドを推奨— LOW-MEDIUM (ライブラリオーバーヘッドを排除しツリーシェイキングを有効化) - 7.4
単純な反復に for-of を使用— LOW-MEDIUM (反復ボイラープレートを 30-50% 削減) - 7.5
モダン文字列メソッドを使用— LOW-MEDIUM (正規表現より 2-5 倍高速) - 7.6
O(1) 検索に Set/Map を使用— LOW-MEDIUM (検索あたり O(n) から O(1) に)
- 7.1
高度なパターン— LOW- 8.1
型安全 ID に Branded Types を使用— LOW (互換性のない ID 型の混在を防止) - 8.2
型検証と推論に satisfies を使用— LOW (プロパティアクセスエラーを防止し 100% のオートコンプリート精度を有効化) - 8.3
文字列パターンにテンプレートリテラル型を使用— LOW (文字列フォーマットエラーの 100% をコンパイル時に防止)
- 8.1
参考資料
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pproenca
- リポジトリ
- pproenca/dot-skills
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/pproenca/dot-skills / ライセンス: MIT
関連スキル
doubt-driven-development
重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。
apprun-skills
TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。
desloppify
コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。
debugging-and-error-recovery
テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。
test-driven-development
テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。
incremental-implementation
変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。