TypeScript混合类型实现

时间:2014-08-16 13:23:52

标签: typescript hybrid

http://www.typescriptlang.org/Handbook#interfaces网站上解释混合类型。因为这些对于创建JS的输入非常有用 - 我想知道是否可以定义一个实现例如JS的类。这样的界面:

interface Counter {
    (start: number): string;
    interval: number;
    reset(): void;
}

如果没有,那么可能只创建该类型的对象?怎么样?

2 个答案:

答案 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)

我认为更新版本是这样的:

&#13;
&#13;
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;
&#13;
&#13;