2012-10-03 59 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

我們是否可以鏈接到解決方案更新請求? –