- 型システム: TypeScriptは、静的型付けをサポートしています。つまり、変数や関数の型を明示的に指定することができます。これにより、コンパイル時にエラーを検出しやすくなり、より安全なコードを書くことができます。一方、JavaScriptは動的型付け言語であり、変数の型を実行時に解釈します。
例: TypeScript:
function greet(name: string) {
console.log("Hello, " + name + "!");
}
greet("John"); // "Hello, John!"
greet(42); // エラー: 引数の型が不正です
JavaScript:
function greet(name) {
console.log("Hello, " + name + "!");
}
greet("John"); // "Hello, John!"
greet(42); // "Hello, 42!"
- コンパイル: TypeScriptは、コンパイルが必要な静的型付け言語です。TypeScriptのコードは、コンパイラによってJavaScriptに変換される必要があります。一方、JavaScriptはインタプリテッド言語であり、コンパイルの必要はありません。
例: TypeScriptのコンパイル:
tsc script.ts
- ECMAScriptのサポート: TypeScriptは、最新のECMAScript仕様(JavaScriptの標準)をサポートしています。しかし、すべての新機能がすぐに利用可能になるわけではありません。TypeScriptは、将来のバージョンのJavaScriptの機能を使用するためのポリフィルやトランスパイラを提供します。
例: TypeScriptでのECMAScriptモジュールの使用:
import { sum } from "./math";
console.log(sum(2, 3)); // 5
- 開発ツールとエコシステム: JavaScriptには広範な開発ツールとエコシステムがありますが、TypeScriptもそれに加えて、型チェック、自動補完、リファクタリングなどの機能を提供する優れた開発ツールとエコシステムを備えています。
以上がTypeScriptとJavaScriptの主な違いです。プロジェクトの要件や個人の好みによって、どちらを選択するかは異なる場合があります。