TypeScript チートシート — クイックリファレンス
TypeScript 5 の構文、型システム、そして最もよく使うイディオムをまとめたクイックリファレンス。日常の約 80% をカバーします。
TypeScript TypeScript 5.x
ECMAScript + 型 · マルチパラダイム・構造化 · JS の上にある静的(段階的)型付け
おすすめの学習パス
まずコンパイル環境(tsc / tsconfig)を整え、TS が JS のスーパーセットであることを理解する → 基本的な型注釈、共用型、インターフェースを習得 → 型システム(ジェネリック、型ガード、型操作)を深掘りする → class とモジュールでコードを整理する → 非同期と DOM / Node の型を扱う → 最後にビルド設定、テスト、デバッグを必要に応じて参照。FAQ セクションは後で読み返すと落とし穴回避に役立ちます。
1.Hello World とビルド環境
TypeScript をコンパイル・実行し、tsc、tsconfig、型検査の流れを理解する。
最小プログラム
TS は JS のスーパーセットです:有効な JS は有効な TS。型注釈を付けて tsc で JS にコンパイルします。
tsc コンパイル
tsc は .ts を .js にコンパイルします。--noEmit は型チェックのみ、--watch は変更を監視、--strict は厳格モード。
tsconfig.json
tsconfig.json でコンパイルを設定:target、module、strict、outDir。npx tsc は自動で読み込みます。
TS を直接実行
tsx / ts-node を使うとコンパイルなしで TS を直接実行できます。Node 22 は --experimental-strip-types をネイティブサポート。
厳格モード
strict: true ですべての厳格チェックを有効化:null チェック、暗黙 any のエラー、未使用変数の警告。新プロジェクトでは必須。
TS と JS の関係
TS はコンパイル時に型をチェックし、コンパイル後の JS には型情報が残りません。型はコンパイル時にのみ存在し、実行時に消去されます。
依存関係と型パッケージ
ライブラリには型定義が必要です。@types/* は DefinitelyTyped コミュニティの型パッケージ。typescript はコンパイラのツール依存です。
エディタ統合
VS Code は TS をネイティブサポート:ホバーで型表示、エラーは赤い波線、補完、リファクタリング。エラーメッセージはインラインで表示。
2.変数と型注釈
型注釈、型推論、共用型、any / unknown、型アサーション。
型注釈
変数名の後に `: 型` で注釈します。注釈後は型が固定され、別の型を代入するとコンパイルエラー。
型推論
TS は初期化値から型を推論し、多くの場合明示的な注釈は不要。複雑な型は明示的なインターフェースが望ましい。
共用型
`|` は共用型を表します:`string | number` のいずれでも可。メンバーにアクセスするにはまず型ガードが必要。
any と unknown
any は型チェックを無効化(避ける)。unknown は未知を意味し、ガード後にのみ使用可能。外部データを安全に扱うには unknown を使う。
型アサーション
`as` はコンパイラに「あなたが分かっている」と伝えるアサーション。実行時は変わらず、コンパイル時の宣言に過ぎません。濫用はエラーを隠します。
非 null アサーション
`!` サフィックスは値が非 null / undefined だとアサートします。確信がある時のみ使用。そうでないと実行時にクラッシュする可能性。
リテラル型
リテラル型は型を具体的な値に絞り込みます:'up'、42、true。共用と組み合わせてオプションを列挙。
分割代入と型
分割代入は型を保持します。関数の引数を分割代入する場合は引数オブジェクト全体の型を注釈する必要があります。
3.型システム
基本型、オブジェクト / 配列 / タプル、インターフェース、ジェネリック、型エイリアス、型操作。
基本型
string、number、boolean、null、undefined、void、symbol、bigint の基本型セット。
配列とタプル
`number[]` は配列、`[string, number]` はタプル(長さと順序固定)、`readonly` は読み取り専用配列。
オブジェクト型
オブジェクト型は形状を記述します:プロパティ、オプショナル `?`、読み取り専用 `readonly`、メソッドシグネチャ。
interface と type
`interface` はオブジェクトの形状を定義(拡張可)、`type` 別名はより柔軟(共用 / 交差 / タプル)。日常的には interface 優先。
列挙型
`enum` は名前付き定数集合:数値列挙、文字列列挙、const enum。文字列列挙がよく使われます。
ジェネリック
ジェネリックは型をパラメータ化します:T は型パラメータ。関数 / クラス / インターフェースで再利用可能。コンパイル時に確定。
keyof とインデックス
`keyof` はオブジェクトのキーの共用を取得、`T[K]` はインデックスアクセス、 mapped type。型操作のコアツール。
組み込みユーティリティ型
Partial / Omit / Pick / Record / Exclude / ReturnType などの mapped type でよくある変換を簡略化。
テンプレートリテラル型
テンプレート文字列構文で文字列型を構築。共用と組み合わせて順列を生成。文字列を型レベルで解析するテクニック。
4.型ガードと null 値
型ガード、型の絞り込み、オプショナルチェイニング、null 処理、参照セマンティクス。
型ガード
`typeof`、`instanceof`、`in` で共用型を絞り込みます。分岐内では型が自動的に絞り込まれます。
型の絞り込み
ガードの後、型はスコープ内で絞り込まれます(narrowing)。null チェックや truthy チェックでも絞り込まれます。
判別共用
判別共用:判別フィールド(kind / type)を共有し、`switch` 後に型が精密に絞り込まれる。ステートマシンのモデリング。
オプショナルチェイニングと null 合体
`?.` で安全アクセス、`??` で null フォールバック、`??=` でデフォルト代入。深いチェインアクセスで null クラッシュを防止。
null と undefined
strictNullChecks 下では null / undefined を通常の型に代入できません。明示的な共用または処理が必要。
参照セマンティクス
TS は JS の参照セマンティクスを変えません:オブジェクトは参照共有、配列はシャローコピー。型は形状を記述するのみ。
カスタム型ガード
`is` 構文は関数を型ガードとして宣言します:boolean を返し引数を絞り込む。配列フィルタリングでよく使われます。
表明関数
`asserts` 表明関数は不変条件を宣言します:void を返すが呼び出し後に型が絞り込まれる。エラーを投げて中断。
5.制御フロー
分岐、ループ、switch と型の絞り込みの組み合わせ。
if / else
`if` / `else` 分岐と型ガード。条件式で変数の型が絞り込まれます。
switch と網羅性
`switch` で判別共用を処理。`default` 分岐で `never` を使い全ケース網羅をチェック。
ループ
`for` / `for...of` / `while` で反復。配列の反復は `for...of`、インデックスが必要な場合は `for` または `entries`。
三項演算子と型
三項演算子の両側の型は共用されます。条件で異なる型を返す場合、結果は共用型になります。
break と continue
`continue` は現在のループをスキップ、`break` は抜ける、ラベル付き `break` / `continue` でネストを制御。
早期 return
ガード節で早めに return してネストを減らす。null チェック後に型が絞り込まれます。
do...while
`do...while` は先に一度実行してから判定。少なくとも 1 回実行するループで使用。型は関与しません。
オブジェクト走査
`Object.keys` でオブジェクトのキーを反復。`keyof` のアサーションで型安全に。値は `Object.values`。
6.関数
関数の注釈、オプショナル / デフォルト引数、オーバーロード、残余引数、this。
関数の型
関数の型注釈:引数の型と戻り値の型。アロー関数の型は関数宣言と同等。
オプショナルとデフォルト引数
`?` はオプショナル引数、`=` はデフォルト引数。デフォルトは暗黙的にオプショナル。オプショナル引数は必須引数の後。
残余引数
`...rest` は可変長の引数を配列に集めます。rest 引数には配列の型注釈が必要。
オーバーロード署名
オーバーロード:複数の署名宣言 + 1 つの実装。呼び出しは署名で照合する。引数パターンで戻り型を制約。
ジェネリック関数
ジェネリック引数の制約:`T extends ...`。制約により型を絞り、そのメンバーを使える。
this 型
`this` 引数で `this` の型を注釈。メソッドチェーンは `this` を返してチェインを実現。アロー関数は `this` を束縛しない。
コールバックと関数引数
コールバック関数を引数として扱うには関数型で注釈する。配列の高階関数である map / filter / reduce の型推論。
関数の制約テクニック
引数の共用絞り込み、オプショナルコールバック、戻り推論。関数の引数は具体クラスよりインターフェースが望ましい。
7.文字列
テンプレート文字列、よく使うメソッド、正規表現、文字処理。
テンプレート文字列
バッククォートのテンプレート文字列:`${}` で補間、複数行を保持。型は依然として `string`。
よく使うメソッド
`slice` / `substring` で切り出し、`toUpperCase` で変換、`split` で分割、`includes` / `startsWith` で検索、`replace` で置換。
テンプレートリテラル型
型レベルのテンプレート文字列:`${}` で型を連結。`infer` で文字列構造を抽出。
文字とコードポイント
`length` は UTF-16 コード単位数(絵文字は 2 つと数える)。コードポイントの反復は `for...of` / `Array.from`。
正規表現
`RegExp` でマッチ・置換。`match` はキャプチャグループの配列を返し、`matchAll` はグローバルに反復。型レベルでは `RegExp` は固定。
ロケールと比較
`localeCompare` でロケール比較、`toLocaleLowerCase` でロケール変換、`Intl` で数値や日付をフォーマット。
エスケープ文字
文字列エスケープ:`\n` 改行、`\t` タブ、`\\` バックスラッシュ、`\u` コードポイント。シングルクォート / ダブルクォート内でエスケープ。
反転と比較
文字列反転は split / 配列、空白除去、重複除去。比較は `localeCompare` または正規化比較。
8.コレクションとオブジェクト
配列、オブジェクト、Map / Set、不変更新パターン。
配列操作
`push` / `pop` で末尾、`unshift` / `shift` で先頭、`splice` で挿入 / 削除、`slice` でコピー、`includes` / `indexOf` で検索。
map / filter / reduce
関数型反復:`map` で変換、`filter` で絞り込み、`reduce` で集約、`find` で検索、`every` / `some` で判定。新しい配列を返し元は変更しない。
オブジェクト操作
スプレッドで `{...a, ...b}` マージ、`Object.keys` / `values` / `entries` で反復、`keyof` で型付きキー。
Map
`Map` は任意のキーでマッピング:set / get / has / delete / size。挿入順を保持し、O(1) 検索。
Set
`Set` は重複排除:add / delete / has / size。配列の重複排除、和集合 / 差集合。
不変更新
その場変更ではなくスプレッド / コピーで更新。オブジェクト置換、配列追加 / 削除は新しい参照を返す。React の state でよく使われる。
タプルと Record
タプルは長さ固定、`Record` はキーと値のマッピング。オブジェクトリテラルを `as const` で定数化。
WeakMap / WeakSet
`WeakMap` / `WeakSet` のキーはオブジェクトかつ弱参照。GC を妨げない。メタデータキャッシュや副作用記録に使用。
9.パフォーマンスとメモリ
ガベージコレクション下のメモリ観、大規模データ、文字列最適化、監視。
ガベージコレクション
TS / JS には GC があり、手動解放は不要。参照されなくなったオブジェクトは回収される。クロージャによる長寿命オブジェクトの保持に注意。
大規模配列
大規模配列では TypedArray やストリーミングを検討。`filter` / `map` は新配列を生成するので注意。単一ループの再利用が効率的。
文字列のメモリ
文字列は不変で、連結は新しい文字列を生成する。大量連結は配列 `join` かテンプレート。文字列はインターンされる。
WeakRef とキャッシュ
WeakRef は弱参照でオブジェクトの回収を妨げず、WeakMap / WeakSet もキーが弱参照される。キャッシュや副作用を記録する用途に弱コンテナを使う。
パフォーマンスのコツ
`any` による最適化低下を避け、再割り当てを減らし、結果をキャッシュ。V8 の最適化は安定した形状のオブジェクトに依存。
メモリ監視
Node のメモリ:`process.memoryUsage()`、`--max-old-space-size`。ブラウザでは Performance API。
クロージャとメモリ
クロージャは外部変数を保持し寿命を延ばす。ループ内のクロージャ罠に注意。参照を解放する。
TypedArray とバイナリ
TypedArray でバイナリ数値を処理:`Uint8Array` / `Float64Array`。ビューはバッファを共有。
10.クラスとオブジェクト指向
class、アクセス修飾子、継承、抽象クラス、ジェネリッククラス。
class の基本
class 構文:フィールド、コンストラクタ、メソッド。フィールドに型と可視性を注釈可能。
アクセス修飾子
`public`、`private`、`protected`、`readonly`。すべてコンパイル時のチェック。
継承と override
`extends` で継承、`super()` で親コンストラクタ呼び出し、`override` でメソッド上書き。サブクラスは親(is-a)。
抽象クラスとインターフェース
abstract クラスはインスタンス化不可、抽象メソッドはサブクラスで実装必須。インターフェースは形状を制約。抽象クラスは実装を持てる。
implements
`class implements インターフェース`:クラスはインターフェースの形状を満たす必要がある。複数のインターフェースを実装可能。
ジェネリッククラス
ジェネリッククラス:型パラメータをフィールドとメソッドに使用。制約でジェネリックの範囲を絞る。
getter / setter
`get` / `set` アクセサでフィールド読み書きをラップ。検証や計算ロジックを追加できる。
静的メンバー
`static` でクラスレベルのフィールドとメソッドを定義。静的メンバーはインスタンスに依存しない。ファクトリや定数に `static`。
11.例外処理
throw / try-catch、エラー型、独自エラー、非同期エラー。
throw / try-catch
`throw` でエラーを投げ、`try-catch` で捕捉、`finally` で後処理。`catch` の変数は既定で `unknown` なので絞り込みが必要。
独自エラー
`Error` を extends して独自エラークラスを定義。追加情報を保持。エラー名で型を区別。
よくあるエラー型
Error 基底クラス:`TypeError` 型エラー、`RangeError` 範囲エラー、`ReferenceError` 参照エラー。`instanceof` で判定。
非同期エラー
`async` 関数の `throw` は拒否された Promise に。`await` 時に `try-catch` で捕捉。`.catch` チェーンでも可。
エラーバウンダリ
モジュール境界でエラーを捕捉・変換。サードパーティのエラーは統一的にラップ。エラーの漏洩によるクラッシュを防ぐ。
エラー処理パターン
予測可能なエラーは結果を返し、予期しないものは例外を投げる。Result 風(ok / err)と `throw` にはそれぞれ使い所がある。
エラーメッセージの質
エラーメッセージはコンテキストを含む:何、どこ、どう修正。独自エラーはフィールドを保持。
未処理の拒否
未捕捉の rejected Promise は `unhandledrejection` を発火。最上位でフォールバックして静かな失敗を防ぐ。
12.入出力
console 出力、Node のファイル / ストリーム、fetch ネットワーク、型付き JSON。
console 出力
`console.log` / `info` / `warn` / `error`、テンプレート出力、`%o` フォーマット、グループ化とカウント。
fetch ネットワーク
`fetch` で非同期リクエスト。`await` で応答、JSON パース、エラー処理、結果の型アサーション。
Node のファイル
`fs/promises` で非同期読み書き。`readFile` / `writeFile` / `mkdir` / `readdir` は Promise を返す。
JSON と型
`JSON.parse` / `stringify` でシリアライズ。`parse` の結果はガードで検証、`stringify` は関数を無視。
ストリーム処理
`ReadableStream` / Web Streams で大きな応答を処理。読み込み進捗、チャンクごとの処理。
環境変数と引数
Node は `process.argv` / `process.env` を読み取る。引数解析、環境変数の型絞り込み。
ブラウザ Web API
`localStorage` / `sessionStorage`、`navigator`、`WebSocket` の型。保存値はシリアライズが必要。
ファイル読み込み
`input[type=file]` で `File` を取得、`FileReader` でテキスト / DataURL 読み込み、オブジェクト URL でプレビュー。
13.よくある落とし穴
日常開発で踏みがちな落とし穴と正しい書き方。
any の濫用
`any` は型チェックをオフにし本物のエラーを隠す。可能なら `unknown` + ガードを使う。
空値の判定
`!!` で真偽値判定、`== null` で null / undefined 両方判定、配列の空判定。`0` や `''` を空と扱わない。
async の誤用
async 関数は必ず Promise を返す。`await` を忘れると Promise が漏れる。`forEach` は async を待たない。
等価比較
`===` は厳密等価。`NaN !== NaN`。オブジェクトは参照比較。深い比較は手書きまたはライブラリ。
null と undefined の混同
`null` は意図的な空値、`undefined` は未代入。strictNullChecks 下では別々に処理。オプショナルチェイニングとアサーションを使い分け。
this の喪失
コールバック内で `this` が `undefined` になる。アロー関数または明示的 `.bind`。クラスフィールドのアロー関数が一般的。
絞り込みの崩壊
プロパティアクセス後は絞り込みが失われる。先に変数に取り出してから絞り込む。引数を再代入すると広がる。
網羅性チェック
判別共用の `default` で `never` を使い網羅性をチェック。新しい分岐を追加すると未処理はコンパイルエラー。
コピーと変更
配列 / オブジェクトは参照共有のため誤変更に注意。更新前にコピー。`sort` はその場変更。
14.並行処理と非同期
Promise、async / await、Worker スレッド、イベントループ。
Promise
Promise は非同期結果を表す。`then` チェーン、`catch` でエラー、`finally` で後処理。型注釈は `Promise<T>`。
async / await
async 関数は Promise を返す。`await` で展開。エラーは `try-catch`。トップレベル `await` は ESM が必要。
並列と競合
`Promise.all` は全部完了、`allSettled` は全部(失敗含む)、`race` は最初に完了、`any` は最初に成功。
Worker スレッド
Web Worker / Node `worker_threads` で並列計算。`postMessage` で通信、`transferable` で所有権移転。
イベントループ
同期コードが先に実行、マイクロタスク(Promise)がマクロタスク(setTimeout)より先。ブロッキングは全体を停滞させる。
ジェネレータ
`function*` ジェネレータは遅延生成。`yield` で一時停止・再開。型注釈は `Generator`。
非同期イテレータ
`for await...of` で非同期データソースを反復。非同期ジェネレータ `async function*`。ストリームデータの消費。
並行数制限
同時実行される非同期タスク数を制御。バッチ、セマフォ、`p-limit` などの手法でリソース枯渇を防ぐ。
15.ネットワークとモジュール
モジュールシステム、import / export、fetch、型付き API ラッパー。
ES モジュール
`import` / `export` で静的にインポート / エクスポート。TS 型のエクスポートは `export type`。モジュールはスコープを隔離。
型のみのインポート
`import type` は型のみを取り込みコンパイル時に消去。実行時依存や循環参照を避ける。
型付き API のラッパー
`fetch` をラップして強い型を返す。レスポンス検証、エラー統一処理。ジェネリックなリクエスト関数。
Node HTTP サーバ
`node:http` またはフレームワーク(Express / Fastify)。型付きリクエスト / レスポンス。ルーティング。
DOM の型
`document.getElementById` の戻り型、イベント型、HTML 要素の型マッピング。
URL とパラメータ
`URLSearchParams` でクエリ文字列を構築、`URL` でパース。型安全にパラメータを読み取る。
WebSocket
WebSocket は双方向通信。`onmessage` イベント、ジェネリックなデータ、`readyState`。
ヘッダと認証
型安全に `Headers` を設定。`Authorization: Bearer ...`、`Content-Type`。インターセプタで統一注入。
16.日付と時刻
Date オブジェクト、タイムスタンプ、フォーマット、タイムゾーン。
Date の基本
`Date` のコンストラクタ、`getFullYear` / `getMonth` / `getDate` の読み出し、`set*` の設定。月は 0 始まり。
タイムスタンプ
`getTime()` ミリ秒タイムスタンプ、`Date.now()`、`Date.parse`。日付の比較はタイムスタンプで。
フォーマット
`toISOString` は UTC 形式、`toLocaleDateString` はローカル形式、`Intl.DateTimeFormat` でカスタム。
タイムゾーン
タイムスタンプは UTC ミリ秒で、フォーマットして初めてローカルタイムゾーンが反映される。`Intl` の `timeZone` オプションで指定。
タイマ
`setTimeout` で遅延、`setInterval` で周期、`clearTimeout` でキャンセル。戻り値の型は `number`。
経過時間と区間
2 つのタイムスタンプの差がミリ秒単位の経過時間。区間判定はタイムスタンプで比較。`setInterval` のドリフトに注意。
日付ライブラリ
dayjs / date-fns は明快な API とタイムゾーン処理を提供。小型で不変。複雑なタイムゾーンはライブラリの使用を推奨。
高精度タイマ
`performance.now()` はミリ秒精度で、システム時刻変更の影響を受けない。パフォーマンス計測に使用。
17.プロセスとシステム
Node プロセス、コマンドラインツール、標準ストリーム、ビルド成果物の実行。
Node プロセス
`process` グローバル:`argv` 引数、`env` 環境、`exit` コード、`stdout` / `stderr` ストリーム。
CLI ツール
CLI を作成:引数解析、ヘルプ出力、終了コード。shebang でスクリプトを実行可能に。
標準ストリーム
`stdin` で入力、`stdout` で出力、`stderr` でエラー。`readline` で対話。パイプデータ。
コンパイル成果物の実行
tsc 後 `node dist/main.js` で実行。`package.json` の `bin` でコマンド登録。型宣言は `.d.ts`。
システムコマンドの実行
`execFile` で外部コマンド実行、`spawn` でストリーム。`child_process` の型。インジェクション回避のためエスケープに注意。
終了コード
`0` 成功、非 0 失敗。慣例:`1` は一般エラー、`2` は使用法エラー。CI スクリプトは終了コードに依存。
npm scripts
`package.json` の `scripts` でコマンドを編成。`pre` / `post` フック、`&&` 連結、`&` 並列。ビルドチェーンでよく使用。
設定と環境
`dotenv` で `.env` を読み込み、型付き設定オブジェクト、実行時検証。設定とコードを分離。
18.正規表現とテキスト処理
正規表現の構文、フラグ、型付きマッチ、テキスト処理の慣用句。
正規表現の構文
リテラル `/.../` または `RegExp` コンストラクタ。文字クラス、量指定子、グループ、 anchor。
フラグ
`g` グローバル、`i` 大文字小文字無視、`m` 複数行、`s` ドットが改行に一致、`u` Unicode、`y` スティッキー。
マッチと抽出
`match` は配列を返し(0 番目は全体一致 + キャプチャグループ)、`matchAll` はグローバルに反復、`match` 失敗時は `null` なのでチェックが必要。
置換
`replace` は文字列 / 関数で置換。`$1` でキャプチャ参照、グローバル `g` で全置換。関数置換でロジックを処理。
バリデーションの慣用句
全体一致は `^...$` で anchor。数値 / メール / URL のよく使うパターン。`test` は boolean を返す。
正規表現のパフォーマンス
破滅的バックトラックを避ける:ネストした量詞。正規表現をプリコンパイル。`g` の `lastIndex` 状態に注意。
正規表現の落とし穴
リテラルはエスケープが必要、`g` フラグの `lastIndex` 状態、貪欲マッチ、文字列内の `\` の二重エスケープ。
よく使うパターン
ID / 電話番号 / 色 / 日付など、よく使う正規表現スニペット。業務フォーマットの検証用。
19.ビルドとツールチェーン
tsconfig、バンドラ、Lint / フォーマッタ、テスト、CI。
tsconfig 詳解
よく使うコンパイラオプション:`moduleResolution`、`declaration`、`noUnusedLocals`、`esModuleInterop`、`paths` エイリアス。
バンドラ
Vite / Webpack / Rollup でバンドル。Vite は TS / フロントエンドのデフォルト。ライブラリは tsup / Rollup で ESM + CJS を出力。
Lint とフォーマッタ
ESLint でルールチェック、Prettier でフォーマット。`ts-eslint` が型認識ルールを提供。
テスト
Vitest / Jest でユニットテスト。`describe` / `it` / `expect`。型と実行は分離。TS を直接テスト。
CI とデプロイ
CI ステージ:型チェック、Lint、テスト、ビルド。`tsc --noEmit` で型エラーをブロック。
デバッグ
sourceMap + Node `--inspect` でブレークポイントデバッグ。`console` デバッグ、型アサーションで補助。
npm 公開
ライブラリ公開:`files` で公開内容、`version` はセマンティックバージョニング、`main` / `types` / `exports` エントリ。公開前にビルド。
monorepo 設定
npm / pnpm workspaces でマルチパッケージリポジトリ。依存共有、パッケージ間参照、スクリプト統一。
このチートシートについて
このページは TypeScript 5.x の自己完結型クイックリファレンスです。型システムと言語コアの、実プロジェクトの約 80% の一般的な使い方をカバーします。内容はモダンなイディオムに重点を置いています:インターフェースと型エイリアス、ジェネリック、共用 / 交差型、型の絞り込み、リテラル型、keyof / typeof、写像型と条件型、そして非同期プログラミングとの組み合わせ。TypeScript は 2012 年に Microsoft が公開した JavaScript のスーパーセットで、コンパイル時に JavaScript に静的型検査を追加し、大規模プロジェクトでの保守性を大幅に向上させます。現在、フロントエンドの主流の選択肢です。 19 のセクションはそれぞれ 1 つのテーマに焦点を当てています:基本構文、変数と型推論、型システム、参照と値セマンティクス、制御フロー、関数とオーバーロード、文字列とテンプレート、コレクション、メモリと型消去、クラスとインターフェース、エラー処理、入出力、よくある落とし穴、並行処理(非同期型)、ネットワーク、時間、プロセス、正規表現、ビルドツール(tsc / tsconfig)。各サブセクションには「概念紹介 + そのままコピーできるコードスニペット」が付属します。 すべてのコードとテキストはブラウザでローカルにレンダリングされ、データは一切デバイスから出ません。正確なリファレンスは TypeScript 公式ハンドブックを参照してください。
バージョン 2.1.0