問題 §
TypeScriptの静的メソッドを呼び出したときthisの値が状況によって変化して一定しない
その結果、インテリセンスが提示する候補が実行時に見つからないことがある
検証コード §
class X {
static sub() {
console.log(this);
}
}
class Y {
static sub2(proc:()=>void) {
proc();
}
}
X.sub();
Y.sub2(X.sub);
実行結果 (TypeScript 2.8) §
function X() { ←1回目のX.sub()の出力
} ←1回目のX.sub()の出力
[object Window] ←2回目のX.sub()の出力
原因 §
不明
対策 §
thisは使わない