Gli esempi di codice in questa risposta assumono la seguente dichiarazione:
var implementation: MyInterface;
Fornendo un'implementazione di un'interfaccia richiamabile
Come follow-up per la risposta accettata , come suggerito da alcuni dei suoi commentors, una funzione che corrisponde la firma chiamata dell'interfaccia implementa implicitamente l'interfaccia. Quindi è possibile utilizzare qualsiasi funzione di corrispondenza come un'implementazione.
Per esempio:
implementation = () => "Hello";
Non è necessario specificare esplicitamente che la funzione implementa l'interfaccia. Tuttavia, se si vuole essere esplicito, è possibile utilizzare un cast:
implementation = <MyInterface>() => "Hello";
Fornire un'implementazione riutilizzabile
Se si vuole produrre un'implementazione riutilizzabile dell'interfaccia, come si farebbe normalmente con un'interfaccia Java o C #, basta memorizzare la funzione da qualche parte accessibile ai suoi consumatori.
Per esempio:
function Greet() {
return "Hello";
}
implementation = Greet;
Fornire un'implementazione parametrizzata
Si consiglia di essere in grado di parametrizzare l'attuazione nello stesso modo in cui si potrebbe parametrizzare una classe. Ecco un modo per fare questo:
function MakeGreeter(greeting: string) {
return () => greeting;
}
implementation = MakeGreeter("Hello");
Se si desidera che il risultato di essere digitato come interfaccia, basta impostare in modo esplicito il tipo di ritorno o il cast del valore da restituire.