[英]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.