如何增加“内置”类型之一?例如Array?
在JS中,我会做类似
的事情Array.prototype.shuffle = function () { ... };
TypeScript中的等价物是什么?
答案 0 :(得分:20)
TypeScript中的类型是“开放式”,因此您只需编写:
interface Array {
shuffle: () => any; // <-- Whatever signature you want.
}
然后扩展类型以包含新函数(并且您可以为其分配与签名匹配的函数)。
但是请注意,扩展内置类型(lib.d.ts中的那些类型 - 例如Array)在语言服务中当前存在问题,因为它会因为性能原因而在内部缓存这些类型。我在http://typescript.codeplex.com/workitem/4编写的解决方法是为了在VS中的语言服务中扩展内置类型而没有错误。