当我将一个函数引用作为参数传递给另一个函数然后在某个地方调用它时,它会丢失"这个"。为了防止它,我必须将方法转为箭头功能。以下是我的意思:
class Meeseeks{
private line="I'm mister Meeseeks";
lookAtMe(){ console.log(this.line+', look at me!'); }
}
// somewhere else:
let mr = new Meeseeks();
mr.lookAtMe();/// ok, prints fine
function callIt(fn:Function){ fn(); }
callIt(mr.lookAtMe);/// this one throws "Uncaught TypeError: Cannot read property 'line' of undefined"
所以解决问题的唯一方法就是转向" lookAtMe"进入箭头功能:
lookAtMe = () => console.log(this.line+', look at me!');
我的问题是:当我使用函数引用时,TypeScript会警告我吗?因为我讨厌编译时遇到运行时错误,所以我首先使用TypeScript(我非常喜欢严格的类型语言)。现在,为了防止它,我使用所有方法箭头函数,并且它不利于继承。
您知道的任何tsconfig条目或tslint条目?