这种写作风格是什么意思?

时间:2019-05-28 07:25:43

标签: typescript

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;

我想知道:

  1. (start: number): string;这里有一个匿名函数?

  2. <Counter>

    中的含义
    let counter = <Counter>function(start: number) {
      return start.toString();
    };
    
  3. 我不知道c中的let c = getCounter()是什么;

    这不是对象,也不是类,其类型为Counter,表示interface(但为什么要分配给函数?)c是Counter的实例吗?接口等于功能?

1 个答案:

答案 0 :(得分:-1)

第一个答案:  它的呼叫签名(类似于构造函数),这意味着此接口是一个函数,无论何时实现它,它都应该具有一个获取数字并返回字符串的函数,并且在需要时创建您的实现的实例,您应该调用它。

第二个答案:  该函数定义接口构造函数并返回接口实现的实例。

第三个答案:  与第二个答案相关的实例应该放在变量中。

我希望我能清楚地解释

相关问题