[英]How to use an node module without typings from Typescript
我正試圖通過以下方式從node_modules
導入外部模塊:
import { offline } from 'redux-offline';
從文件/src/store/store.ts
。 但是,我收到以下錯誤:
找不到模塊
redux-offline
我已經讀過我們可以聲明一個模塊,比如redux-offline.d.ts
,我們定義了一個虛擬聲明,然后我們可以從源代碼中使用它。 然而,我根本得不到它:
感謝您的幫助,了解它的工作原理。
應該在哪個文件夾中定義該文件?
這些文件實際上可以在任何文件夾中聲明,但最好將它們放在一起,描述它們是什么。 在我們的項目中,我們有一個名為“ambient-types”的文件夾,其中有一個“external-modules”文件夾。
我已經讀過我們可以聲明一個模塊,比如redux-offline.d.ts
你是對的,這將位於external-modules文件夾中。
Typescript如何知道該模塊正在聲明外部模塊的接口?
在你的redux-offline.d.ts文件中,我們聲明了所謂的環境聲明,它看起來如下:
declare module 'redux-offline';
redux-offline現在可以從您自己的文件導入。
import { redux-offline } from 'redux-offline';
這基本上告訴Typescript,在運行時你希望有一個名為redux-offline的文件/庫可用。 請注意,導入將具有“任何”類型。
環境聲明是您使用編譯器做出的承諾。 如果這些在運行時不存在並且您嘗試使用它們,則事情將在沒有警告的情況下中斷。
有關更多參考,請參閱 - https://basarat.gitbooks.io/typescript/docs/types/ambient/d.ts.html https://www.typescriptlang.org/docs/handbook/modules.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.