TypeScript でクラス名を取得する
古い JavaScript は、関数型プログラミングに重点を置いています。JavaScript のスーパーセットである TypeScript の進化に伴い、オブジェクト指向プログラミング機能のサポートが開始されました。
オブジェクト指向プログラミングの背後にある基本的な用語は、プログラムが相互作用する実世界のエンティティで構成されているということです。
TypeScript クラスとオブジェクト
TypeScript は、クラス
の概念でオブジェクト指向プログラミングをサポートします。クラスは、クラスインスタンスを作成するために使用される実際のエンティティの青写真です。
TypeScript クラスは ES6 から導入されました。クラスは、フィールド、メソッド、およびコンストラクターで構成されます。
class Animal {
// properties/fields
name: string;
color: string;
// constructor
constructor(name: string) {
this.name = name;
}
// methods/functions
eat(): void {
console.log("I am eating");
}
}
フィールドは、Animal
オブジェクトの名前と色を格納するために定義されています。TypeScript コンストラクターは、オブジェクトのプロパティを初期化するために使用されます。
これは、上記の例のように、パラメーター化できる特殊関数です。
Animal
クラスを配置すると、そこからオブジェクトを作成できます。TypeScript は、new
キーワードを使用して、特定のクラスから新しいオブジェクトを作成します。
TypeScript は強く型付けされた言語であるため、新しい Animal
インスタンスのタイプは Animal
タイプになります。
let dog: Animal = new Animal('rocky');
ご覧のとおり、Animal
インスタンスの作成時に Animal
クラスのコンストラクターが呼び出されています。Animal
クラスコンストラクターは 1つの文字列パラメーターを受け入れ、オブジェクトの作成中にそれを渡す必要がありました。
実行時に TypeScript オブジェクトのタイプを取得する
実行時に TypeScript オブジェクトのタイプを知る必要があるシナリオがいくつかあります。Vehicle
というクラスがあるとしましょう。
class Vehicle {
vehicleNo: string;
vehicleBrand: string
constructor(vehicleNo: string, vehicleBrand: string) {
this.vehicleNo = vehicleNo;
this.vehicleBrand = vehicleBrand;
}
}
新しい Vehicle
オブジェクト miniCar
を作成しましょう。
let miniCar: Vehicle = new Vehicle('GH-123', 'AUDI');
miniCar
は Vehicle
オブジェクトであり、そのタイプは Vehicle
です。特定のクラスの name
プロパティを使用して、そのクラスの名前を確認できます。
構文:
<class_name>.name
クラス Vehicle
の名前を確認しましょう。
console.log(Vehicle.name);
出力:
Vehicle
TypeScript オブジェクトのコンストラクタ
前述のように、各 TypeScript クラスは、プログラマーによって作成されたカスタムコンストラクターまたはデフォルトのコンストラクターである可能性のあるコンストラクターで構成されます。これは特殊なタイプの TypeScript 関数です。
したがって、オブジェクトのコンストラクター
関数への参照を取得できます。
構文:
Object.constructor
次のように、miniCar
オブジェクトのコンストラクターへの参照を取得しましょう。
let miniCarConstructorRef: any = miniCar.constructor;
次に、miniCarConstructorRef
変数値をコンソールに記録します。
[Function: Vehicle]
予想どおり、miniCar
オブジェクトのコンストラクターを参照します。
TypeScript を使用すると、name
プロパティを使用してオブジェクトのコンストラクター名を取得できます。
構文:
Object.constructor.name
上記の構文を使用して、miniCar
オブジェクトのクラス名を取得しましょう。
let classNameOfTheObject = miniCarConstructorRef.name;
最後に、classNameOfTheObject
変数値をコンソールに記録します。
console.log(classNameOfTheObject);
出力:
Vehicle
これは、オブジェクトが属するクラスをチェックするために推奨される方法です。
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.