TypeScriptはJavaScriptに型を追加した静的型付け言語として、コードの品質向上やエラーの事前防止などに貢献しています。型判定はTypeScriptの中核的な機能の一つであり、コードの安全性を高める重要な役割を果たしています。
1. 型判定の基本
TypeScriptでは、変数や関数、オブジェクトなどに型を指定することができます。これにより、コンパイラがコードを解析し、型に関するエラーや不整合を事前に検出することができます。
// 変数に型を指定
let num: number = 10;
// 関数に引数と戻り値の型を指定
function add(a: number, b: number): number {
return a + b;
}
// オブジェクトに型を指定
let person: { name: string; age: number } = {
name: "John",
age: 30
};
2. 型推論
TypeScriptは型推論によって、変数の型を自動的に推測することができます。型推論を活用することで、冗長な型指定を避けつつも型安全性を維持できます。
// 型推論による変数の型決定
let message = "Hello, TypeScript!";
// messageの型はstringと推論される
// 配列の型推論
let numbers = [1, 2, 3, 4, 5];
// numbersの型はnumber[]と推論される
3. 型ガード
TypeScriptでは、型ガードを使用して実行時の型の安全性を向上させることができます。特に、typeof
やinstanceof
を利用した型ガードは一般的です。
// typeofによる型ガード
function logMessage(message: string | number) {
if (typeof message === "string") {
console.log("文字列: " + message);
} else {
console.log("数値: " + message);
}
}
// instanceofによる型ガード
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
bark() {
console.log("ワンワン");
}
}
function petAnimal(pet: Animal) {
if (pet instanceof Dog) {
pet.bark();
} else {
console.log("ペットではありません");
}
}
TypeScriptの型判定は柔軟で強力な機能であり、プロジェクトの規模や複雑さに応じて効果的に活用することが重要です。適切な型の使用は、コードの保守性や可読性を向上させ、開発プロセス全体を効率的にします。