TypeScript の(this as any)の意味

TypeScript の(this as any)の意味

(this as any)は、<any>thisと同じ意味のようです。thisをany型に型キャストしているようです。

なぜthisをanyに型キャストする必要があるかというと、こうすることによってキャストした変数などが何の型にでも可能になります。

具体的に書くと以下がわかりやすいです。

class Aaa {
  private a: string = 'aiueo';
  private b: string = 'aaaaa';
  private c: string = 'bbbbb';

  public getA(str: string) {
    return (this as any)[str];
  }
}

const aaa : Aaa = new Aaa();
console.log(aaa.getA('a'));
console.log(aaa.getA('b'));
console.log(aaa.getA('c'));

上記のTypeScriptをトランスパイルして実行すると、結果は以下になります。

aiueo
aaaaa
bbbbb

このようにstring型を渡していますが、this as anyでキャストすることによって変数を参照することができるようになります。

thisの型を出力するには以下のように記述すれば出力されます。

console.log(this.constructor.toString());

参考サイト

TypeScript の(this as any)の意味

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました