Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 将typescript定义模块声明与节点模块导入相匹配大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我通过NPM安装了流行的d3库.

npm install d3
tsd install d3 -save
tsc

在我的home.ts文件中,我导入了模块:

从’d3 / d3’导入*为d3;

这编译正确,但我得到这个语义错误

app / home / components / home.ts(2,21):错误TS2307:找不到模块’d3 / d3′.

此外,我在IDE中丢失了所有语法高亮/提前输入信息.

TSD提供的原始d3.d.ts文件声明模块如下:

declare module 'd3' {
    export = d3;
}

如果我将模块更改为’d3 / d3′,一切正常:

declare module 'd3/d3' {
    export = d3;
}

所以,我很难得到我需要的东西:

从’d3’导入*为d3;给我我期望的类型定义,但在Node_modules / d3.js中查找一个不正确的模块.

从’d3 / d3’导入*为d3;找到正确的模块,因为路径是正确的,但我丢失了我的类型定义,因为模块声明不匹配.

我怎样才能让这两件事情相匹配,这样我就可以简单地导入模块而不会丢失我的类型定义?

仅供参:我使用的是typescript 1.7.5,我的moduleResolution设置为node.

解决方法

你需要告诉装载机在哪里寻找东西.在systemjs.config.js中,在地图对象中添加以下映射:

var map= {
...
...
'd3':  'node_modules/d3'
};

d3.js文件确实位于node_modules / d3中,上面的映射将让加载器找到该文件.现在,您可以将其导入组件中:

import * as d3 from 'd3';

大佬总结

以上是大佬教程为你收集整理的node.js – 将typescript定义模块声明与节点模块导入相匹配全部内容,希望文章能够帮你解决node.js – 将typescript定义模块声明与节点模块导入相匹配所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。