我想知道当形式参数名称不必匹配时,类型注释函数的含义是什么:
let foo: (x:number, y:number) => number = (a:number, b:number) => a+b
我的意思是,(x:number, y:number) => number
是什么意思?我认为如果我在定义函数类型时可以编写(number, number) => number
会更有意义,特别是如果'形式参数名称'无论如何都不匹配。
我必须在函数类型中定义x
和y
之类的名称是什么原因?打字稿不能推断出函数类型(a:number, b:number) => number
吗?
我知道我可以省略显式类型注释,但在我的情况下,我总是想要显式类型注释。
答案 0 :(得分:1)
public map(mapper: (value?: T, index?: number, list?: T[]) => any): any[];
您需要变量名称,因为它们具有关于方法所期望的参数的重要信息,只是类型不够。正如你所说,你可以避免使用类型,但这样你就可以使用你的代码尽可能多地提供关于你的方法的信息。
答案 1 :(得分:1)
回复位于Typescript FAQ
这里没有说明,但似乎是为了使文档更具可读性而做出的决定,因为参数名称可能暗示了参数值。