【发布时间】:2016-09-19 09:00:43
【问题描述】:
我有这 3 个功能,除了一些非常小的差异之外,它们几乎相同:
function toInt1(x: string): number { return parseInt(x, 10); }
const toInt2 = function (x: string): number { return parseInt(x, 10); };
const toInt3 = (x: string): number => parseInt(x, 10);
现在我是 TypeScript 的新手,但在 JS 领域,我更喜欢第三种,因为它最简洁、限制性最强(没有 this,没有提升函数名)。
但是,当我将 tslint 与此规则一起使用时(表面上看起来很合理,但也许我错了……):
"typedef": [
true,
"call-signature",
"parameter",
"arrow-parameter",
"property-declaration",
"variable-declaration",
"member-variable-declaration"
],
我收到关于 toInt2 和 toInt3 的这些错误:
expected variable-declaration: 'toInt2' to have a typedef
expected variable-declaration: 'toInt3' to have a typedef
看来我可以通过复制所有类型来修复它:
const toInt2: (x: string) => number = function (x: string): number { return parseInt(x, 10); };
const toInt3: (x: string) => number = (x: string): number => parseInt(x, 10);
但是,这非常冗长且没有吸引力。这真的是最好的做事方式吗?
【问题讨论】:
标签: typescript tslint