Typescript: Skillnaden mellan => och : i funktionsdeklaration i gränssnitt
Vad är skillnaden mellan att definiera en funktion i ett gränssnitt som:
interface IMyInterface1 {
functionName(value: string): void;
}
och
interface IMyInterface2 {
functionName: (value: string) => void;
}
Svar #1
Det finns ingen verklig skillnad här, du kan använda den som du känner dig mest bekväm med.
Med det sagt, anser jag att den första antyder en klassmetod medan den andra är ett medlemsobjekt som är en funktion:
class MyClass1 implements IMyInterface1 {
functionName(value: string): void {}
}
class MyClass2 implements IMyInterface2 {
functionName = function(value: string): void {}
}
Det är bara en personlig preferens, kompilatorn kommer också låta dig göra tvärtom:
class MyClass1 implements IMyInterface1 {
functionName = function(value: string): void {}
}
class MyClass2 implements IMyInterface2 {
functionName(value: string): void {}
}
På liknande sätt är dessa två notationer desamma:
let obj1 = {
functionName() {}
}
let obj2 = {
functionName: function() {}
}
Eftersom de båda kompileras till:
var obj1 = {
functionName: function () { }
};
var obj2 = {
functionName: function () { }
};
