簡體   English   中英

如何在沒有Typescript類型的情況下使用節點模塊

[英]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 ,我們定義了一個虛擬聲明,然后我們可以從源代碼中使用它。 然而,我根本得不到它:

  • 應該在哪個文件夾中定義該文件?
  • Typescript如何知道該模塊正在聲明外部模塊的接口?

感謝您的幫助,了解它的工作原理。

應該在哪個文件夾中定義該文件?

這些文件實際上可以在任何文件夾中聲明,但最好將它們放在一起,描述它們是什么。 在我們的項目中,我們有一個名為“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.

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