我在尝试创建 D3 饼图时遇到问题,我正在使用 d3 v4,如果我使用:
/// < reference path="../typings/index.d.ts" />
import * as d3 from "d3";
d3.layout.pie< IData.IPie>().value(function (d) {
Grunt 编译正常,但在浏览器中失败并显示:
无法读取未定义的属性“pie”
那是因为 d3 v4 使用了这个:
d3.pie< IData.IPie>().value(function (d) {
但是如果我改变它并尝试运行 grunt ,我会得到:
[ts] 类型“typeof d3”上不存在属性“pie”。
有什么提示吗?
node_modules/d3: "_id": "[电子邮件受保护]"
打字:https://raw.githubusercontent.com/types/npm-d3/a3171387d85d30049479ca880c617e63dca23afe/index.d.ts
编辑:
package.json
{
"name": "OpenCharts",
"description": "It's time to easier beautiful charts",
"version": "0.0.2",
"devDependencies": {
"@types/d3": "^4.5.0",
"grunt": "^0.4.5",
"grunt-contrib-concat": "~0.4.0",
"grunt-contrib-nodeunit": "~0.4.1",
"grunt-contrib-uglify": "~0.5.0",
"grunt-ts": "^6.0.0-beta.3",
"grunt-tslint": "^4.0.0"
},
"author": "Chriss Mejía",
"license": "MIT",
"dependencies": {
"d3": "^4.4.0"
}
}
删除打字参考路径没有什么区别。
看来您正在使用
type
作为版本 3,而您的 d3 版本是 4。
删除已安装的类型定义,然后安装它
npm install @types/d3 --save-dev
Github 仓库: https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/d3
使用 new Chartist.PieChart('#MyChart', this.chartData, this.chartOptions);
而不是.pie
基本上与打字有冲突,当我完全删除库时它才开始工作:
typings uninstall d3
npm uninstall typings