2013-03-18 6 views
5

Модули в машинописном формате совместимы с интерфейсами. например следующее:Создание модуля для вызова

module M{ 
    var s = "test" 
    export function f(){ 
     return s; 
    } 
} 

interface ITest{ 
    f():string; 
} 

var x:ITest = M; 

Однако возможно ли иметь подписи подписи в модуле? В частности, как я могу написать модуль, совместимый со следующим интерфейсом:

interface ITest{ 
    ():string; 
} 

ответ

2

Нет, это невозможно. Единственным объектом, который может соответствовать сигнатуре вызова, является функция

interface ITest{ 
    ():string; 
} 

var x:ITest = function() {return "";} 
var y:ITest =() => ""; 
Смежные вопросы