15

如何增加一种“内置”类型?例如数组?

在 JS 中,我会做类似的事情

Array.prototype.shuffle = function () { ... };

TypeScript 中的等价物是什么?

4

1 回答 1

19

TypeScript 中的类型是“开放式”的,所以你可以写:

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

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

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

于 2012-10-03T04:23:54.317 回答