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;
我如何正確擴展一個內置對象的方法過載?