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());
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント