我试图通过以下操作从node_modules导入一个外部模块:
import { offline } from 'redux-offline';从一个文件/src/store/store.ts。但是,我得到以下错误:
找不到模块
redux-offline
我读过,我们可以声明一个模块,类似于redux-offline.d.ts,在这里我们定义了一个虚拟声明,然后我们可以从源代码中使用这个声明。但是,我一点也不明白:
我希望你能帮我理解一下它的工作原理。
发布于 2017-04-20 21:11:16
应该在哪个文件夹中定义该文件?
这些文件实际上可以在任何文件夹中声明,但是,最好将它们放在一起,放在描述它们的目录中。在我们的项目中,我们有一个叫做“环境类型”的文件夹,其中我们有一个“外部模块”文件夹。
我读过,我们可以声明一个模块,类似于redux-offline.d.ts。
你说得对,这个应该放在外部模块文件夹里。
类型记录如何知道该模块正在声明外部模块的接口?
在redux-offline.d.ts文件中,我们声明所谓的环境声明,如下所示:
declare module 'redux-offline';redux-离线现在可以从您自己的文件中导入。
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
https://stackoverflow.com/questions/43529328
复制相似问题