2012-10-03 38 views
14

如何增强其中一种“内置”类型?例如数组?TypeScript:增强内置类型

在JS,我会做这样的事情

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

什么在打字稿等价?

回答

20

类型在打字稿“开放性的”,所以你可以这样写:

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

然后类型扩展到包括新的功能(你可以分配一个功能匹配签名的话) 。

但请注意,扩展内置类型(lib.d.ts中的那些类型 - 如Array)在语言服务中当前存在问题,因为它在内部将其缓存为出于全部原因。执行我在http://typescript.codeplex.com/workitem/4处编写的解决方法来扩展VS中的语言服务中的内置类型而不会出现错误。

+4

更新的工作项目:http://typescript.codeplex.com/workitem/176 – basarat

+0

这是如何工作的静态功能? – georgiosd

+0

我们是否可以链接到解决方案更新请求? –