首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用节点模块而不从类型记录中键入

如何使用节点模块而不从类型记录中键入
EN

Stack Overflow用户
提问于 2017-04-20 20:29:36
回答 1查看 9.3K关注 0票数 14

我试图通过以下操作从node_modules导入一个外部模块:

代码语言:javascript
复制
import { offline } from 'redux-offline';

从一个文件/src/store/store.ts。但是,我得到以下错误:

找不到模块redux-offline

我读过,我们可以声明一个模块,类似于redux-offline.d.ts,在这里我们定义了一个虚拟声明,然后我们可以从源代码中使用这个声明。但是,我一点也不明白:

  • 应该在哪个文件夹中定义该文件?
  • 类型记录如何知道该模块正在声明外部模块的接口?

我希望你能帮我理解一下它的工作原理。

EN

回答 1

Stack Overflow用户

发布于 2017-04-20 21:11:16

应该在哪个文件夹中定义该文件?

这些文件实际上可以在任何文件夹中声明,但是,最好将它们放在一起,放在描述它们的目录中。在我们的项目中,我们有一个叫做“环境类型”的文件夹,其中我们有一个“外部模块”文件夹。

我读过,我们可以声明一个模块,类似于redux-offline.d.ts。

你说得对,这个应该放在外部模块文件夹里。

类型记录如何知道该模块正在声明外部模块的接口?

在redux-offline.d.ts文件中,我们声明所谓的环境声明,如下所示:

代码语言:javascript
复制
declare module 'redux-offline';

redux-离线现在可以从您自己的文件中导入。

代码语言:javascript
复制
import { redux-offline } from 'redux-offline';

这基本上告诉类型记录,在运行时,您希望会有一个名为redux-脱机可用的文件/库。请注意,导入将具有“任意”类型。

环境声明是您正在与编译器一起作出的承诺。如果它们在运行时不存在,并且您试图使用它们,那么事情就会在没有警告的情况下中断。

有关更多参考,请参见- https://basarat.gitbooks.io/typescript/docs/types/ambient/d.ts.html https://www.typescriptlang.org/docs/handbook/modules.html

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43529328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档