Los ejemplos de código de esta respuesta asumen la siguiente declaración:
var implementation: MyInterface;
Proporcionar una implementación de un interfaz invocable
Como seguimiento a la respuesta aceptada , según lo sugerido por algunos de sus comentaristas, una función que coincide con la firma llamado de la interfaz implícita implementa la interfaz. Por lo tanto se puede utilizar cualquier función de emparejamiento como una aplicación.
Por ejemplo:
implementation = () => "Hello";
No es necesario especificar explícitamente que la función implementa la interfaz. Sin embargo, si usted quiere ser explícita, se puede utilizar un reparto:
implementation = <MyInterface>() => "Hello";
Proporcionando una implementación reutilizable
Si se quiere producir una implementación de la interfaz reutilizable como lo haría normalmente con un # interfaz Java o C, simplemente almacenar la función en algún lugar accesible para sus consumidores.
Por ejemplo:
function Greet() {
return "Hello";
}
implementation = Greet;
Proporcionando una implementación parametrizado
Es posible que desee para poder parametrizar la aplicación de la misma manera que es posible parametrizar una clase. He aquí una manera de hacer esto:
function MakeGreeter(greeting: string) {
return () => greeting;
}
implementation = MakeGreeter("Hello");
Si desea que el resultado que se escribe como la interfaz, acaba de establecer explícitamente el tipo de retorno o fundido se devuelve el valor.