採用に向く条件
選ぶ理由
- 型で安全・エディタ補完が強力
- 既存の JS 資産をそのまま使える
- 大規模で保守しやすい
プログラミング言語
Microsoft(Anders Hejlsberg) / 2012年登場
JavaScript に静的な型を足した言語。JS の資産をそのまま使え、大規模開発の事実上の標準。型が消えて実行されるのは JS。
基本情報
選定ガイド
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
採用に向く条件
事前に確認する条件
向いている用途
詳しい解説
TypeScript は 2012 年に Microsoft(設計は Anders Hejlsberg)が公開した言語で、JavaScript に静的型システムを足した「スーパーセット」です。正しい JavaScript はそのまま正しい TypeScript でもあるため、既存コードに少しずつ型を導入していけます。
通常のブラウザ配布では、コンパイラやバンドラーが TypeScript を JavaScript へ変換してから実行します。現在の Node.js は、消去可能な型構文だけを含む .ts を型除去して直接起動できますが、tsconfig.json は読み込まず型検査もしません。どちらの経路でも型注釈や interface は実行時に残らないため、型は「開発時の安全装置」であって実行時の検証ではありません。
横にスクロール
型の本当の効果は、エディタとの連携で現れます。補完・リファクタリング・定義ジャンプが正確になり、関数の引数や戻り値の食い違いを書いた瞬間に検出できます。
フロントエンド(React など)からサーバーサイド(Node.js)まで、JavaScript が動く場所すべてで使えます。一方、型はあくまで開発時のもので、外部 API の戻り値など実行時のデータが型どおりとは限りません。型を信じすぎると、想定外の値で実行時エラーになります。
// interface で構造を定め、関数に型注釈を付ける
interface User {
id: number;
name: string;
}
function greet(user: User): string {
return `Hello, ${user.name}`; // 名前の打ち間違いは型でも防げない
}
any を多用すると、せっかくの型チェックが無効になる。@types)が古い/不正確なことがある。言語選定
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
大規模 Web アプリ
型付け: 静的・強い型付け(JS のスーパーセット) / 実行方式: トランスパイル → JavaScript / パラダイム: マルチパラダイム(JS + 静的型)
既存の JS 資産をそのまま使える
ビルド/型定義の手間
最初の一歩
const msg: string = "Hello, World!";
console.log(msg);公式ドキュメント