TypeScriptはJavaScriptに型システムを導入することで、開発者により堅牢なコードを書く機会を提供します。その中でも、型の判定はコードの安全性を向上させる上で重要な要素の一つです。
typeofキーワードの基本
TypeScriptにおいて、変数や式の型を取得するためにはtypeof
キーワードを使用します。これは、ランタイムではなくコンパイル時に型情報を取得できるという特徴があります。以下は、typeof
キーワードの基本的な使用例です。
let myVariable: number = 42;
let myVariableType: typeof myVariable; // 型は"number"
上記の例では、変数myVariable
の型をtypeof
キーワードを用いて取得し、それをmyVariableType
に割り当てています。この結果、myVariableType
の型はnumber
となります。
インスタンスの型取得
typeof
キーワードは単なる変数だけでなく、クラスやインスタンスの型も取得できます。
class MyClass {
value: string = "Hello, TypeScript!";
}
let myInstance = new MyClass();
let instanceType: typeof myInstance; // 型は"MyClass"
上記の例では、MyClass
というクラスを定義し、そのインスタンスを作成しています。その後、typeof
キーワードを使ってmyInstance
の型を取得し、instanceType
に割り当てています。
型安全なリファクタリング
typeof
キーワードはコードをリファクタリングする際にも役立ちます。変数やインスタンスの型が変更されても、typeof
を使用することで手動で型を修正する手間を減らすことができます。
let dynamicValue: any = 42;
// ...
dynamicValue = "TypeScript is powerful!";
let newValue: typeof dynamicValue; // 型は"string"
上記の例では、dynamicValue
が初めにnumber
型で宣言されていますが、後でstring
型の値に変更されています。しかし、typeof
キーワードを使用することで、newValue
は自動的に新しい型であるstring
型として推論されます。
typeof
キーワードはTypeScriptの静的型付けの恩恵を受ける上で非常に有用であり、変数やインスタンスの型情報を効果的に利用することができます。