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