用語集に戻る
フロント中級

TypeScript

typescript

一言で言うと

JavaScript に静的型を加えた言語。書いたコードはコンパイルで JS に変換され、ブラウザや Node.js でそのまま動く。

もう少し詳しく

一言で言うと

JavaScript に静的型を加えた言語。書いたコードはコンパイルで JS に変換され、ブラウザや Node.js でそのまま動く。

詳細

TypeScript は Microsoft 製の言語で、JavaScript のスーパーセットです。JS のコードはそのまま TS としても動き、そこに型注釈・interface・generics などを足していくと、エディタの補完、リファクタリング、コンパイル時のバグ検出がぐっと強力になります。

実行時には型情報が消えるため (tsc が JS に落とす)、性能ペナルティはゼロです。React・Next.js・NestJS・Vite といった主要フレームワークが標準サポートしています。

具体例

// 型注釈と関数
function greet(name: string, age: number): string {
return ${name} (${age});
}

// interface vs type
interface User {
id: string;
name: string;
}
type UserId = User["id"]; // ユーティリティ型

// generics
function first(items: T[]): T | undefined {
return items[0];
}
const n = first([1, 2, 3]); // n: number | undefined

// ユニオン + 型ガード
function format(value: string | number): string {
if (typeof value === "string") return value.trim();
return value.toFixed(2);
}

JS プロジェクトから移行するときは、まず tsconfig.jsonallowJs: true にして拡張子を .ts / .tsx に少しずつ変えていけば段階移行できます。

使い分け / トレードオフ

interfacetype の使い分けは、オブジェクトの形 (構造) を表すときは interface (宣言マージ・extends がしやすい)、ユニオン・タプル・条件型などプリミティブ含む型エイリアスtype が定番です。

学習コストとビルド時間が増える一方、3 人以上のチーム開発・規模 5,000 行以上のプロジェクトでは、保守コストが下がる効果のほうが圧倒的に大きいです。試作品・1 ファイルのスクリプトなら素の JS のままでも構いません。

関連用語

  • [javascript](/glossary/javascript)

  • [generics](/glossary/generics)

  • [interface](/glossary/interface)

  • [nodejs](/glossary/nodejs)

  • [json](/glossary/json)

  • 関連する用語

    この用語を学べるコース

    この用語を実際に使ってみよう

    チョットデキルなら、5分のレッスンで実際にコードを書いて学べます。

    コース一覧を見る