【发布时间】:2017-01-01 15:33:59
【问题描述】:
我使用了一个没有 TypeScript 类型定义的 npm 包。确切地说,我使用的是react-google-maps 库。
按照他们的示例,我从包中导入了以下组件:
import {GoogleMapLoader, GoogleMap, Marker} from "react-google-maps";
但是,TypeScript 在编译期间会引发错误:
error TS2305: Module '"react-google-maps"' has no exported member 'GoogleMapLoader'.
因此,我对此的快速解决方法是声明模块及其类型为“any”的成员:
declare module "react-google-maps" {
export var GoogleMapLoader:any;
}
然而,现在的问题是我的 IDE (WebStorm) 不再提供智能感知。 GoogleMapLoader 甚至没有被识别为反应组件,如果我使用 Babel,我相信它会被识别(至少是没有类型的方法和属性)。
如何导入没有类型定义的 npm 包以由 TypeScript 编译器解析,但又不妨碍 IDE 提供智能感知?
【问题讨论】:
-
试试,
preferences->languages & frameworks->JavaScript->Libraries->Add,并将你的 npm 模块添加为库。 -
@SergeyPanfilov 我已将 node_modules 中的
react-google-map文件夹添加到您提到的位置,但我仍然没有得到模块的智能感知。还有什么我可能错过的吗? -
@SergeyPanfilov 您的建议与打字稿无关。编译器不会查询 WebStorm 已配置的库。
标签: javascript typescript npm webstorm typescript-typings