我见过所示是在多个方面宣称的功能,性能func1和func2这个打字稿接口上:
interface Thing {
func: (arg:string) => number;
func2(arg:string): number;
}
Run Code Online (Sandbox Code Playgroud)
两者有区别吗?有没有一种情况你会使用一个而不是另一个?
这个操场链接似乎暗示这两者可以互换使用。这有什么限制吗?
两者有区别吗
是的。
func: (arg:string) => number;
这个版本意味着它的一个属性。当您尝试声明overloads.
func2(arg:string): number;
这是函数的首选,因为这意味着您可以在事后轻松声明重载(使用接口的开放式性质)
似乎暗示这两者可以互换使用
那是因为它们是类型兼容的。不代表他们是一回事。请参阅下面的属性与方法:


这应该澄清:
interface Thing {
func: (arg: string) => number;
func2(arg:string): number;
}
interface Thing {
// Overload not permitted
func: (arg: number) => string; // ERROR!
// Overload okay
func2(arg: number): string;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1009 次 |
| 最近记录: |