我已经d3
通过NPM
.
npm install d3
tsd install d3 -save
tsc
在我的home.ts
文件中,我已经导入了模块:
import * as d3 from 'd3/d3';
这编译正确,但我得到这个语义错误:
app/home/components/home.ts(2,21): error TS2307: Cannot find module 'd3/d3'.
此外,我在 IDE 中丢失了所有语法突出显示/提前输入信息。
提供的原始d3.d.ts
文件TSD
声明模块如下:
declare module 'd3' {
export = d3;
}
如果我将模块更改为'd3/d3'
,一切正常:
declare module 'd3/d3' {
export = d3;
}
所以,我很难得到我需要的两个:
import * as d3 from 'd3';
给了我期望的类型定义,但会寻找一个node_modules/d3.js
不正确的模块。
import * as d3 from 'd3/d3';
找到正确的模块,因为路径是正确的,但我丢失了我的类型定义,因为模块声明不匹配。
我怎样才能让这两件事匹配起来,这样我就可以简单地导入模块而不会丢失我的类型定义?
仅供参考:我使用的是 typescript 1.7.5,并且我moduleResolution
的设置为node
.