有没有办法通过 tslint 规则在 Typescript 类上强制执行方法返回类型?
Posted
技术标签:
【中文标题】有没有办法通过 tslint 规则在 Typescript 类上强制执行方法返回类型?【英文标题】:Is there a way to enforce method return types on Typescript classes via a tslint rule? 【发布时间】:2017-08-05 05:51:23 【问题描述】:我已经阅读了 tslint 规则 here,虽然它看起来像 the typedef rule 的 call-signature
选项是我想要的,但它并没有抱怨缺少回报输入。
有人知道在类方法上强制返回类型的规则(如果存在)吗?
【问题讨论】:
noImplicitAny
会更适合您吗? IMO,我想尽可能多地利用推断类型。 :)
noImplicitAny
是编译器选项,而不是 linting 选项,并且不会防范这种情况。虽然我同意推断类型很好,但在某些情况下不清楚从方法返回什么类型的数据,这就是我们要强制执行它的原因。
看来call-signature
应该可以工作。也许您也在寻找arrow-call-signature
?
@JKillian,我试过arrow-call-signature
,这比我预想的要好得多,也就是说,它对我们大多数不声明返回类型的箭头函数感到不满——IIRC,角度样式指南指出它们不应该有返回类型,但老实说我不记得了。
【参考方案1】:
原来这可以通过:
"typedef": [
true,
"call-signature",
"property-declaration"
]
更多信息:https://palantir.github.io/tslint/rules/typedef/
【讨论】:
这里请注意,"property-declaration"
不是实现 OP 最初目标所必需的;要求接口属性类型是一个离散选项。 "call-signature"
在这里很重要。
太酷了。感谢@runderworld 的澄清。以上是关于有没有办法通过 tslint 规则在 Typescript 类上强制执行方法返回类型?的主要内容,如果未能解决你的问题,请参考以下文章
无法通过 Angular 模板上的 Codelyzer 禁用 tslint 规则
获取 tslint.json 文件中的所有 TsLint 规则