【发布时间】:2021-06-23 02:01:01
【问题描述】:
在 TypeScript 的接口和类型中使用胖箭头和非胖箭头语法声明函数有什么区别?
例如:
build(paramOne: string): string;
相比:
build: (paramOne: string) => string;
起初,我认为它会限制我实现功能的方式,但事实并非如此。所以,我认为它与 ES6 中的 this 无关。但我确实注意到,当我尝试重载时,以粗箭头语法声明的那个有问题。
例如,这是不可接受的:
build: (paramOne: string) => void
build: (paramOne: number, paramTwo: string) => void
这会报错:
Subsequent property declarations must have the same type. Property 'build' must be of type '{ (paramOne: string): string; (paramOne: number, paramTwo: string): number; }', but here has type '(params: unknown) => void
但这没关系:
build(paramOne: string): string;
build(paramOne: number, paramTwo: string): number;
那么,这两种语法是否相同?有什么区别或场景我应该使用一个而不是另一个?
【问题讨论】:
标签: typescript overloading function-expression