TypeScriptとJavaScriptの文法の違い
TypeScriptとJavaScriptは共に人気のあるプログラミング言語であり、JavaScriptのスーパーセットとして機能するTypeScriptは、型付けなどの機能を提供しています。以下は、両者の文法の主な違いについての概要です。
1. 型付け
JavaScript
JavaScriptは動的型付け言語であり、変数の型が実行時に決まります。
let variable = 10;
console.log(variable); // 結果: 10
variable = "Hello";
console.log(variable); // 結果: Hello
TypeScript
TypeScriptは静的型付け言語であり、変数の型が宣言時に決まります。
let variable: number = 10;
console.log(variable); // 結果: 10
variable = "Hello"; // エラー: 型 'string' の値を型 'number' に割り当てることはできません
2. インターフェースと型エイリアス
JavaScript
JavaScriptにはインターフェースや型エイリアスがありません。
TypeScript
TypeScriptでは、以下のようにインターフェースや型エイリアスを使用できます。
interface Person {
name: string;
age: number;
}
type Point = {
x: number;
y: number;
};
3. 列挙型
JavaScript
JavaScriptには列挙型がありません。
TypeScript
TypeScriptでは、列挙型(Enum)を使用して定数の集合を表現できます。
enum Color {
Red,
Green,
Blue,
}
let myColor: Color = Color.Red;
4. モジュール
JavaScript
JavaScriptでは、ES6からモジュールがサポートされていますが、CommonJSやAMDなどのモジュールシステムも使われています。
TypeScript
TypeScriptもES6モジュールをサポートし、型情報を含んだモジュールが記述できます。
// モジュールのエクスポート
export const myFunction = () => {
// 関数の本体
};
// モジュールのインポート
import { myFunction } from "./myModule";
5. ヌル安全性
JavaScript
JavaScriptでは、変数がnullまたはundefinedになる可能性があります。
TypeScript
TypeScriptでは、明示的にnullやundefinedを許容するかどうかを指定できます。
let value: string | null = "Hello";
value = null; // OK
value = undefined; // エラー: 'undefined' に型 'string | null' を割り当てることはできません
まとめ
TypeScriptとJavaScriptは共に柔軟で強力な言語ですが、TypeScriptは型付けやモジュールのサポートなどで開発者に追加のツールや安全性を提供します。プロジェクトの要件に応じて適切な言語を選択することが重要です。