我在引用函数this
中的problem
对象时遇到了编译问题:
const c = {
f() {
console.log("hi");
},
problem: ko.pureComputed(() => {
return this.f();
}),
};
[ts]包含箭头功能捕获隐含类型为“ any”的“ this”的全局值。
如果我将this
引用为c
:
const c = {
f() {
console.log("hi");
},
problem: ko.pureComputed(() => {
return c.f();
}),
};
[ts]'c'隐式具有类型'any',因为它没有类型注释,并且在其自己的初始化程序中直接或间接引用。
有人可以帮忙吗?并可能解释?谢谢。
答案 0 :(得分:0)
基于@ingvar的评论,我发现了使用匿名类的可接受的解决方案:
const c = new class {
f() {
console.log("hi");
}
problem = ko.pureComputed(() => {
return this.f();
}, this);
}();
现在编译成功,语法上简短且语义正确。