在界面中定义函数有什么区别:
interface IMyInterface1 {
functionName(value: string): void;
}
Run Code Online (Sandbox Code Playgroud)
和
interface IMyInterface2 {
functionName: (value: string) => void;
}
Run Code Online (Sandbox Code Playgroud)
这里没有真正的区别,你可以使用哪种感觉更舒适.
话虽如此,我认为第一个暗示一个类方法,而第二个是一个函数的成员:
class MyClass1 implements IMyInterface1 {
functionName(value: string): void {}
}
class MyClass2 implements IMyInterface2 {
functionName = function(value: string): void {}
}
Run Code Online (Sandbox Code Playgroud)
这只是个人偏好,编译器也会让你做相反的事情:
class MyClass1 implements IMyInterface1 {
functionName = function(value: string): void {}
}
class MyClass2 implements IMyInterface2 {
functionName(value: string): void {}
}
Run Code Online (Sandbox Code Playgroud)
以类似的方式,这两个符号是相同的:
let obj1 = {
functionName() {}
}
let obj2 = {
functionName: function() {}
}
Run Code Online (Sandbox Code Playgroud)
因为它们都被编译为:
var obj1 = {
functionName: function () { }
};
var obj2 = {
functionName: function () { }
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2138 次 |
| 最近记录: |