Примеры кода в этом ответе предполагают следующее заявление:
var implementation: MyInterface;
Обеспечение реализации отзывной интерфейса
В качестве последующей деятельности в связи с принятым ответом , как это было предложено некоторыми из его commentors, функция , которая соответствует вызову подпись интерфейса неявно реализует интерфейс. Таким образом , вы можете использовать любую функцию соответствия в качестве реализации.
Например:
implementation = () => "Hello";
Вам не нужно явно указать, что функция реализует интерфейс. Тем не менее, если вы хотите быть явным, вы можете использовать бросок:
implementation = <MyInterface>() => "Hello";
Обеспечение многоразовых реализаций
Если вы хотите произвести многоразовую реализацию интерфейса, как вы обычно бы с # интерфейсом Java или C, просто хранить функцию где-то доступным для потребителей.
Например:
function Greet() {
return "Hello";
}
implementation = Greet;
Обеспечение реализации параметризованный
Вы можете быть в состоянии параметризации осуществления таким же образом, что вы могли бы параметризацию класса. Вот один из способов сделать это:
function MakeGreeter(greeting: string) {
return () => greeting;
}
implementation = MakeGreeter("Hello");
Если вы хотите, чтобы результат быть набраны как интерфейс, так же явно задать тип возвращаемого значения или отливать значение возвращается.