TypeScript const和敲除pureComputed

时间:2018-10-26 14:37:23

标签: typescript knockout.js

我在引用函数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',因为它没有类型注释,并且在其自己的初始化程序中直接或间接引用。

有人可以帮忙吗?并可能解释?谢谢。

1 个答案:

答案 0 :(得分:0)

基于@ingvar的评论,我发现了使用匿名类的可接受的解决方案:

const c = new class {
  f() {
    console.log("hi");
  }

  problem = ko.pureComputed(() => {
    return this.f();
  }, this);
}();

现在编译成功,语法上简短且语义正确。