添加函数以在TypeScript中键入

时间:2017-07-01 16:08:13

标签: typescript

我正在尝试在TypeScript中扩展类型的功能,并且它似乎工作正常,只要它是“真实”类型,但是如果我尝试为其他类型实现的接口声明函数以同样的方式,我得到编译器错误。

这是一个有效的例子:

interface Set<T> {
    min(): T;
}

Set.prototype.min = function() {
    return 0;
}

但是这个没有:

interface IterableIterator<T> {
    min(): T;
}

IterableIterator.prototype.min = function() {
    return 0;
}

这里我在实现error TS2693: 'IterableIterator' only refers to a type, but is being used as a value here.上遇到编译器错误。

定义和实现适用于/可用于实现IterableIterator的所有接口的函数的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

TypeScript被转换为JavaSript。您只能扩展JavaScript有效对象。 IterableIterator是一个特殊功能,不是可以扩展的有效对象。你可以测试你将String写入JavaScript控制台,它会响应一些文本(意味着可以扩展String)但是当你输入IterableIterator时它会响应某种错误。

Difference between Objects and features while extending it