[英]Is there a way to use a npm package without d.ts definition on TypeScript
[英]Typescript import for an npm package without a definition
我有一個npm軟件包(@ salesforce / canvas-js-sdk),該軟件包沒有Typescript定義文件。 我正在使用React,所以我正在使用“ import from”語法導入依賴關系。 Visual Studio似乎不喜歡該模塊沒有定義文件。 同樣,該模塊應該在名為“ Sfdc”的“窗口”對象上公開一個屬性。 如何在不修改npm軟件包的情況下為其定義文件?
我一直在嘗試:
這就是我當前的import語句的樣子。
然后,我為模塊定義了一個非常簡單的定義,如下所示。
這解決了找不到模塊定義的編譯錯誤。 但是,如果我嘗試像示例中那樣使用Sfdc對象,它將無法正常工作。
這是來自文檔的圖片,說明如何將庫與純JavaScript結合使用。
但是,如果我復制並粘貼該代碼,則在運行時該代碼對我不起作用。 相反,如果使用,我只能獲得對Sfdc對象的引用
鑒於該模塊實際上不是模塊(它是一個公開的全局對象),您將希望您的自定義類型與之匹配。
嘗試編寫declare namespace Sfdc
而不是declare module '@salesforce/canvas-js-sdk'
。
然后,您應該能夠刪除import語句並直接從代碼中的任何位置訪問全局Sfdc
變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.