javascript – Typescript对象文字“this”关键字

在对象文字中的函数内使用“this”时的预期行为是什么?

例如,假设我有一个类型foo,它只有一个名为“bar”的函数,而不是其他属性.但是在fooObj.bar方法中,我能够访问this.baz(其中“baz”不是“foo”类型的属性)我没有看到错误.不应该打字稿错误,因为fooObj上没有“baz”吗?

type foo = {
    bar(): void;
}
var fooObj: foo = {
    bar: () => {
        // TS does not error out when I access this.baz
        console.log(this.baz);
    }
} 

解决方法:

你正在使用箭头功能,which has lexical this.

但是,对象文字中非箭头函数属性的简写更短:

var fooObj: foo = {
    bar() {
        console.log(this.baz);
    }
}

相关文章

我最大的一个关于TypeScript的问题是,它将原型的所有方法(无...
我对React很新,我正在尝试理解子组件之间相互通信的简洁方法...
我有一个非常简单的表单,我将用户电子邮件存储在组件的状态,...
我发现接口非常有用,但由于内存问题我需要开始优化我的应用程...
我得到了一个json响应并将其存储在mongodb中,但是我不需要的...
我试图使用loadsh从以下数组中获取唯一类别,[{"listing...