typescript1.5 - Implementera funktion utan namn i Typescript
Jag försöker implementera en funktion utan namn på detta sätt:
interface I {
(name: string): void;
}
class C implements I {
(name: string):void { }
}
Jag vill använda C på det här sättet, men det fungerar inte:
C("test");
Jag kan skriva det i javascript och använda gränssnittsdeklarationen: I("test");
Men jag vill göra samma sak i Typescript.
Svar #1
Du kan inte göra det på klasser, men du kan göra det med en vanlig funktion:
interface I {
(name: string): void;
}
var C: I = function(name: string) {
};
C("test"); // ok
C(1); // compile error
Om du sedan ändrar ditt gränssnitt kommer du att meddelas av ett kompilatorfel att ändra C-funktionen.
