2016-04-11 36 views
0

我正在使用的庫向JSON.parse添加了輔助功能,這當然是內置對象(但writable)的內置方法。我需要添加以下過載簽名,讓打字稿編譯器知道的新功能:在TypeScript中爲內置對象的方法添加過載

<T>(text: string, type: { new(): T }) => T 

很顯然,我會觸碰lib.d.ts避免。

我嘗試重新聲明整個JSON接口,並且創建該類型的全局JSON變量,但除了添加新的接口外,它還複製了所有內置呼叫特徵。

如果我重新聲明JSON接口只用新的簽名,整個事情似乎正常工作,新的方法重載與內置的人一起接受了,但是這似乎只是hackish的和脆弱的:

declare interface JSON { 
    parse<T>(text: string, type: { new(): T }): T; 
} 

declare var JSON: JSON; 

我如何正確擴展一個內置對象的方法過載?

回答

相關問題