TypeScript:扩充内置类型

时间:2012-10-03 04:05:33

标签: typescript

如何增加“内置”类型之一?例如Array?

在JS中,我会做类似

的事情
Array.prototype.shuffle = function () { ... };

TypeScript中的等价物是什么?

1 个答案:

答案 0 :(得分:20)

TypeScript中的类型是“开放式”,因此您只需编写:

interface Array {
  shuffle: () => any; // <-- Whatever signature you want.
}

然后扩展类型以包含新函数(并且您可以为其分配与签名匹配的函数)。

但是请注意,扩展内置类型(lib.d.ts中的那些类型 - 例如Array)在语言服务中当前存在问题,因为它会因为性能原因而在内部缓存这些类型。我在http://typescript.codeplex.com/workitem/4编写的解决方法是为了在VS中的语言服务中扩展内置类型而没有错误。