プログラミング言語

TypeScript たいぷすくりぷと

静的型付けJavaScript型推論トランスパイルインターフェースMicrosoft
TypeScriptについて教えて

簡単に言うとこんな感じ!

JavaScriptに「型チェック機能」を追加した言語だよ!「この変数には数字しか入れちゃダメ」ってルールを事前に決めておくことで、バグを実行前に発見できるんだ。大きなシステム開発で特に力を発揮する「頼れる先輩JavaScript」ってイメージ!


TypeScriptとは

TypeScript(タイプスクリプト)は、Microsoftが開発したプログラミング言語で、JavaScriptのスーパーセット(上位互換) です。JavaScriptの文法をそのまま使いながら、静的型付け(変数や関数にデータの「型」を指定する仕組み) を追加したものです。TypeScriptで書いたコードは最終的にJavaScriptに変換(トランスパイル)されて動作します。

「型」とは「この変数は文字列だ」「この関数は数値を返す」といった情報のことです。型を指定することで、開発ツール(エディタ)がコードの誤りを事前に検出してくれます。たとえば、数値を期待している場所に文字列を渡してしまったときに、実行前にエラーを教えてくれる のが最大のメリットです。

大規模なWebシステムやアプリ開発において、チームで開発する場合にその真価を発揮します。型情報がドキュメントの役割を果たし、「この関数に何を渡せばいいか」がコードを読むだけで明確になるため、開発効率と品質を同時に向上させる ことができます。現在ではフロントエンド開発の事実上の標準となりつつあります。


TypeScriptの仕組みと特徴

TypeScriptがJavaScriptと最も異なる点は「型システム」です。以下に主な特徴を整理します。

特徴説明利点
静的型付け変数・関数に型を明示的に指定実行前にバグを検出できる
型推論型を書かなくても自動で推論型の恩恵を受けながらコードが簡潔になる
インターフェースオブジェクトの形(構造)を定義データ構造を統一・共有できる
トランスパイルTypeScript→JavaScriptに変換ブラウザ・Node.jsでそのまま動く
後方互換既存のJSコードがそのまま使える段階的に移行できる

JavaScriptとの比較コード例

// JavaScript(型なし)
function add(a, b) {
  return a + b;
}
add(1, "2"); // → "12"(意図しない結果でも実行できてしまう)

// TypeScript(型あり)
function add(a: number, b: number): number {
  return a + b;
}
add(1, "2"); // → コンパイルエラー!実行前に気づける

覚え方

TypeScript=型(タイプ)があるJavaScript」と覚えよう。「タイプライター」のタイプ=型、と連想するとバッチリ!

トランスパイルの流れ

開発者が書くコード           実際に動くコード
┌─────────────────┐          ┌──────────────────┐
│  TypeScript     │  tsc     │  JavaScript      │
│  (.ts/.tsx)   │ ───────▶ │  (.js)         │
│  型情報あり      │  変換    │  ブラウザで動作   │
└─────────────────┘          └──────────────────┘

歴史と背景

  • 2010年頃GoogleやMicrosoftが大規模JavaScript開発の課題(バグ検出の難しさ・保守性の低さ)を認識し始める
  • 2012年10月:Microsoftがオープンソースとして TypeScript 0.8 を公開。開発はAnders Hejlsberg(C#の設計者)が主導
  • 2014年:TypeScript 1.0リリース。Visual StudioおよびVS Codeとの統合が進む
  • 2016年:Angular(Googleのフレームワーク)がTypeScriptを標準言語として採用。一気に注目度が上がる
  • 2019年:Airbnb・Slack・MicrosoftなどがTypeScriptへの全面移行を発表。エンタープライズ採用が加速
  • 2020年以降:Node.jsバックエンド・React/Vue.jsフロントエンドでも主流に。Stack Overflow調査で「最も愛されている言語」上位に継続ランクイン
  • 2023年:主要フレームワーク(Next.js・NestJS・Deno)がTypeScriptをデフォルトで採用するようになる

JavaScriptとTypeScriptの関係

TypeScriptはJavaScriptを「包んだ」関係にあります。すべてのJavaScriptコードは有効なTypeScriptコードでもあります。

TypeScript と JavaScript の関係 TypeScript(スーパーセット) 型アノテーション / インターフェース / ジェネリクス JavaScript 変数 / 関数 / クラス 非同期処理 / DOM操作 すべての JS コードは TS としても有効 TS は最終的に JS にトランスパイルされて動く

主要フレームワーク・ライブラリとの対応

フレームワークTypeScript対応状況
React.tsx ファイルで公式サポート。大規模開発では事実上必須
AngularTypeScript が デフォルト言語(JSの選択肢なし)
Vue.js 3Composition APIとTypeScriptの相性が良い
Next.jsプロジェクト作成時にTypeScriptを推奨
NestJSTypeScriptベースで設計されたバックエンドフレームワーク
DenoTypeScriptをネイティブで実行可能(トランスパイル不要)

型の種類早見表

// 基本型
let name: string = "田中";         // 文字列
let age: number = 30;              // 数値
let isAdmin: boolean = true;       // 真偽値
let data: null = null;             // null
let nothing: undefined = undefined;// undefined

// 複合型
let scores: number[] = [90, 85];   // 配列
let tuple: [string, number] = ["A", 1]; // タプル

// インターフェース(オブジェクトの形を定義)
interface User {
  id: number;
  name: string;
  email?: string; // ?は省略可能
}

関連する規格・RFC

規格内容
ECMAScript 2015(ES6)仕様TypeScriptが対応するJavaScriptの基盤仕様。クラス・アロー関数・モジュールなどを定義
ECMA-262JavaScript(ECMAScript)の国際標準仕様。TypeScriptのトランスパイル対象

関連用語

  • JavaScript — TypeScriptのベースとなるプログラミング言語。ブラウザ・サーバーで動作するWebの共通言語
  • トランスパイラ — TypeScriptをJavaScriptに変換するツール(tscコマンドなど)
  • Node.js — JavaScriptをサーバーサイドで実行する実行環境。TypeScriptとの組み合わせも多い
  • React — Meta製のUIライブラリ。TypeScriptと組み合わせた開発が現在の主流
  • 静的解析 — コードを実行せずに誤りを検出する手法。TypeScriptの型チェックもこれにあたる
  • IDE(統合開発環境) — Visual Studio CodeなどのエディタはTypeScriptの型情報を活用して補完・エラー検出を行う
  • オープンソース — TypeScriptはMicrosoftがGitHub上で公開するオープンソースプロジェクト