【发布时间】:2017-06-23 05:33:50
【问题描述】:
我正在开发一个现有的 TypeScript AngularJS 项目。现在我想使用 d3js,但要这样做,我需要手动下载 d3js typescript(原来 d3 由一百万个文件组成),然后是 d3js min javascript。公司代理不允许我使用工具下载/管理依赖项等,所以我只有手动选项。
因此我更喜欢直接在index.html 中导入 d3js,并直接从 TypeScript 调用 d3js,而不使用 d3 ts 版本。
所以我做例如
var svg = d3.select("svg"),
margin = {top: 20, right: 20, bottom: 30, left: 40},
width = +svg.attr("width") - margin.left - margin.right,
height = +svg.attr("height") - margin.top - margin.bottom,
g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");
var x = d3.scaleBand()
.rangeRound([0, width])
.paddingInner(0.05)
.align(0.1);
但是我得到编译器错误“找不到名称d3”有没有办法在 TypeScript 中告诉这个 JavaScript 对象是在其他地方定义的,它不应该假设它?
可惜d3 js 被拆成百万块了……我发现用处不大,没有select,谁还会用d3 scale?这对我来说毫无意义。
【问题讨论】:
-
这会有帮助吗?请检查 plunker embed.plnkr.co/EUdDLvo9sNrmujhwE9s7
标签: javascript angular d3.js typescript webstorm