在http://www.typescriptlang.org/Handbook#interfaces网站上解释混合类型。因为这些对于创建JS的输入非常有用 - 我想知道是否可以定义一个实现例如JS的类。这样的界面:
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
如果没有,那么可能只创建该类型的对象?怎么样?
答案 0 :(得分:6)
我想知道是否可以定义一个实现
的类
没有
如果没有,那么可能只创建该类型的对象吗?
是。将使用类型断言(或any
):
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter():Counter{
var counter = <Counter>function(start:number){};
counter.interval = 123;
counter.reset = function(){};
return counter;
}
答案 1 :(得分:0)
我认为更新版本是这样的:
interface Counter {
(start: number): string;
interval: number;
reset(): void;
}
function getCounter(): Counter {
return (() => {
var result: any = (start: number) => "Start!";
result.result = 10;
result.reset = () => {}
//Converts the temporary variable to the interface type.
return <Counter> result;
})();
}
&#13;