【问题标题】:undefined d3.scale in Typescript打字稿中未定义的d3.scale
【发布时间】:2016-07-06 07:55:19
【问题描述】:

我是 Typescript 的新手(2 周),我正在做一个项目来包装 d3.js 框架。 我在使用“d3.d.ts”、命名空间、导出模块、导入时遇到问题。

我的问题:当我尝试使用 d3.scale.linear() 时,我的浏览器控制台出现错误:

    TypeError: d3.scale is undefined

代码:

/// <reference path="../typings/d3.d.ts">;
"use strict";
var linear = d3.scale.linear();
console.log("linear resolv !")

我的编译器选项(我在编译过程中没有错误,但也许它很有趣):

{
    "files": [
        "src/twod3/workspace.ts",
        "src/twod3/component/basic.ts",
        "src/twod3/component/data.ts",
        "src/twod3/component/operation.ts",
        "src/main.ts"
    ],
    "compilerOptions": {
        "noImplicitAny": true,
        "target": "es2015",
        "module":"commonjs",
        "sourceMap":true
    }
}

我尝试了不同的导入策略但没有成功。

d3.d.ts

declare namespace d3 {
...
    export module scale {
            ...
            export function linear(): Linear<number, number>;
            ...
     }
}

我不明白这个问题,谢谢你的帮助。

【问题讨论】:

  • 精度:
    d3.select(...)
    工作正常
  • 试试d3.scaleLinear 而不是d3.scale.linear我猜你使用的是d3版本4
  • 这是工作。谢谢。
  • d3.scaleLinear 缺少 D3 类型 =/

标签: d3.js typescript


【解决方案1】:

注意 d3.js 的版本 在 4.2.1 版本中 d3.scale.linear();给出以下错误。 TypeError: d3.scale.linear() 比例未定义

我在 4.2.1 版本中使用 d3.scaleLinear(); 修复了这个错误;

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我必须匹配 D3 版本,它支持 d3 的内置方法。 要么匹配 D3.js 的版本,确保你更新你的凉亭。 或者 匹配当前版本的内置方法。

    我支持的 d3.scale.ordinal 版本是 '3.5.17',之前我是最新版本。

    【讨论】:

    • 所以我用的是d3@3.5.17,现在我也需要同一个版本的打字,但是当3.5.17版本没有打字的时候,你在关注哪个版本?
    猜你喜欢
    • 2020-02-12
    • 2018-04-20
    • 2016-11-06
    • 2016-12-13
    • 2016-09-05
    • 1970-01-01
    • 2020-04-13
    • 2018-09-08
    • 1970-01-01
    相关资源
    最近更新 更多