interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter(): Counter {
let counter = <Counter>function(start: number) {
return start.toString();
};
counter.interval = 123;
counter.reset = function() {
this.interval = 0;
};
return counter;
}
let c = getCounter();
c(10);
c.reset();
c.interval = 5.0;
我想知道:
(start: number): string;
这里有一个匿名函数?
<Counter>
在
let counter = <Counter>function(start: number) {
return start.toString();
};
我不知道c
中的let c = getCounter()
是什么;
这不是对象,也不是类,其类型为Counter
,表示interface
(但为什么要分配给函数?)c
是Counter的实例吗?接口等于功能?
答案 0 :(得分:-1)
第一个答案: 它的呼叫签名(类似于构造函数),这意味着此接口是一个函数,无论何时实现它,它都应该具有一个获取数字并返回字符串的函数,并且在需要时创建您的实现的实例,您应该调用它。
第二个答案: 该函数定义接口构造函数并返回接口实现的实例。
第三个答案: 与第二个答案相关的实例应该放在变量中。
我希望我能清楚地解释