【发布时间】:2017-11-23 22:32:18
【问题描述】:
我已经花费了好几个小时来尝试加载一个 NodeJS 库,该库在 @types 存储库中有一个(在我看来是错误的)类型定义。
我说的是geolib 和它的@types/geolib
是的,我知道该库在 master 上有类型,但还没有标记版本,我想为将来的情况解决这个问题。
正在安装geolib(当时是2.0.22)
npm install geolib --saveimport * as geolib from 'geolib';
一切都很棒!但你最喜欢的编辑器中没有类型解析
正在安装@types/geolib
npm install @types/geolib --save-dev
这里是中断的地方:
node_modules/@types/geolib/index.d.ts' is not a module. (2306)
这是因为类型文件没有export = geolib,而是尝试将此文件作为模块加载。
我的目标是简单地加载节点库并使用@types/geolib 作为开发的类型提示。
我尝试了多种选择,例如使用新的types 指令,通过在tsconfig 中设置types: [] 来防止自动加载,仅使用import 'geolib' 导入,但似乎没有解决定义位于@types 并作为模块尝试的问题。
编辑
typescript@2.3.4geolib@2.0.22@types/geolib@2.0.2
【问题讨论】:
-
似乎是类型定义的问题。作为一种解决方法,您可以尝试添加自定义
d.ts文件并使用导出自己声明模块。 -
是的,我有点想避免这样做,因为他们在那里。我只需要防止它们作为模块加载。
-
这里有同样的问题。你有没有机会解决这个问题?
标签: node.js typescript