簡體   English   中英

如何在 TypeScript 中本地擴展全局接口?

[英]How do I extend a global interface locally in TypeScript?

我試圖理解這篇描述在本地擴展全局接口的GitHub 帖子

但是,由於帖子中的評論很少,我很難理解發生了什么。 下面是我指的那個帖子。

您可以在本地擴展全局接口

declare global { interface String { myMegaMethod(): void; } } 'hey'.myMegaMethod(); // works

如果我要使用以下模式來擴展像String這樣的本機類型的功能,我該怎么做?

我是否只有一個名為string.ts的文件, string.ts包含以下片段,每當我希望我的 Strings 能夠訪問myMegaMethod時,我都會導入該片段?

declare global {
    interface String {
        myMegaMethod(): void;
    }
}

我正在努力理解發生了什么。

提到的示例代碼只是展示了如何使用該方法,並沒有談論完整的implementation及其usage ,而且該代碼用於其他模塊使用的type declaration aka d.ts文件,它是其中之一步驟來實現你提到的目標。

實際上,要擴展“ string ”,您甚至可能不需要在新的d.ts文件中global declare一個簡單的接口就可以工作,您可以在下面的附加 SO 鏈接中參考。

如果我要使用以下模式來擴展像 String 這樣的本機類型的功能,我該怎么做?

首先,僅在 .ts 文件中添加該代碼是wont 您需要遵循一些步驟來主要使用prototype來實現這一目標

這在下面的 SO 線程中有完整的描述 -

如何在 Typescript 中擴展 String Prototype 並在接下來使用它?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM