d3.js 打字稿中未定义d3.scale

aiqt4smr  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(132)

我是Typescript的新手(2周),我正在做一个项目来 Package 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>;
            ...
     }
}

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

km0tfn4u

km0tfn4u1#

注意d3.js版本在4.2.1版本中为d3.scale.linear();会产生下列错误。TypeError:未定义d3.scale.linear()比例
我在版本4.2.1中通过使用d3.scaleLinear()修复了此错误;

ymzxtsji

ymzxtsji2#

我也遇到过类似的问题。我必须匹配D3版本,它支持D3的内置方法。要么匹配D3. js的版本,确保更新您的浏览器,要么匹配当前版本的内置方法。
我支持的d3.scale.ordinal版本是“3.5.17”,以前我使用的是最新版本。

相关问题