TypeScript でクラス名を取得する

Migel Hewage Nimesha 2023年1月30日
  1. TypeScript クラスとオブジェクト
  2. 実行時に TypeScript オブジェクトのタイプを取得する
  3. TypeScript オブジェクトのコンストラクタ
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');

miniCarVehicle オブジェクトであり、そのタイプは 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

これは、オブジェクトが属するクラスをチェックするために推奨される方法です。

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.

関連記事 - TypeScript Class