打字稿:=>之间的差异和:在接口函数声明中

时间:2017-08-10 22:37:07

标签: typescript

在界面中定义函数有什么区别,如:

S

Graphics::Texture

1 个答案:

答案 0 :(得分:7)

这里没有真正的区别,你可以使用哪一种你觉得更舒服 话虽如此,我认为第一个暗示一个类方法,而第二个是一个函数成员:

class MyClass1 implements IMyInterface1 {
    functionName(value: string): void {}
}

class MyClass2 implements IMyInterface2 {
    functionName = function(value: string): void {}
}

这只是个人偏好,编译器也会让你做相反的事情:

class MyClass1 implements IMyInterface1 {
    functionName = function(value: string): void {}
}

class MyClass2 implements IMyInterface2 {
    functionName(value: string): void {}
}

以类似的方式,这两个符号是相同的:

let obj1 = {
    functionName() {}
}

let obj2 = {
    functionName: function() {}
}

因为它们都被编译为:

var obj1 = {
    functionName: function () { }
};
var obj2 = {
    functionName: function () { }
};