当TsLint说“expected callSignature to have a typedef.”时,它是什么意思?

90

我在代码中有一个函数:

networkStop = (action: string = null) => {
    this.action[action] = false;
    this.net = false;
    this.netd = false;
}

我收到了一个 TsLint 错误,错误信息如下:

Message 4   TsLint: expected callSignature to have a typedef.

有人能解释一下这是什么意思吗?

2个回答

137

"缺少类型定义" 请查看:https://github.com/palantir/tslint/blob/master/src/rules/typedefRule.ts 获取详细信息。基本上,由于 callSignature 缺少某些函数注释。

可能的解决方法(显式指定返回类型):

networkStop = (action: string = null):void => {
    this.action[action] = false;
    this.net = false;
    this.netd = false;
}

你能告诉我在()后面加上:any和void是一样的吗?在这个例子中它什么都不返回,那我该如何指定呢?谢谢。 - user1679941
3
不,它们并不相同。但是 anyvoid 是兼容的,也就是说 any 可以接受任何东西,甚至是 void。在这种情况下,我会使用 void ;) - basarat
对于 void,我只需输入 :void 而不是 :any,还是有特殊的语法? - user1679941
对我来说很有用。 - Alejandro Gonzalez
如何在getter函数中使用这个? - Rigin Oommen

22
为了避免构建错误,在 tslint.json 文件中编写代码,如下所示:
"typedef": [
  false,
  "call-signature"
],

tslint.json中的这行代码未强制方法的返回类型。


5
这并不是这个问题的答案。 - chachan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接