【问题标题】:Argument of type 'number[][]' is not assignable to parameter of type 'ArrayLike<number>''number[][]' 类型的参数不可分配给 'ArrayLike<number>' 类型的参数
【发布时间】:2019-10-23 17:39:58
【问题描述】:

我正在使用 typescript 和 d3js 构建散点图。

tsconfig 在约束方面非常强大。

错误与变量有关:data

错误

“number[][]”类型的参数不能分配给“ArrayLike”类型的参数。 索引签名不兼容。 类型 'number[]' 不可分配给类型 'number'.ts(2345)

scatterPlot.ts


    /*jshint esversion: 6 */

    /// <reference path="twikey.interfaces.ts" />

    function scatterPlot(placeholder : HTMLDivElement) {
        let data : number[][] = [[5, 3], [10, 17], [15, 4], [2, 8]];
   ...    
        let datax = d3.scaleLinear()
            .domain([0, d3.max<number>(data, function (d : number[]) : number {
                return d![0];
            })])
            .range([0, width]);       
    ...

    }

tsconfig.json


    {
        "compileOnSave": true,
        "compilerOptions": {
            "allowJs": false,
            "declaration": true,
            "emitDecoratorMetadata": true,
            "experimentalDecorators": true,
            "module": "es6",
            "moduleResolution": "node",
            "noImplicitAny": true,
            "outDir": "wwwroot/dist/js",
            "sourceMap": true,
            "strictNullChecks": true,
            "target": "es6"
        },
        "files": [
            "wwwroot/src/drawLineChart.ts",
            "wwwroot/src/twikey.api.ts",
            "wwwroot/src/scatterPlot.ts"
        ],
        "exclude": [
            "node_modules",
            "dist"
        ]
    }

【问题讨论】:

    标签: d3.js typescript3.0


    【解决方案1】:

    我放错了“d3.max&lt;number&gt;” -> “&lt;number&gt;d3.max”

        let datax = d3.scaleLinear()
            .domain([0, <number>d3.max(data, function (d : number[]) : number {
                return d[0];
            })])
    

    【讨论】:

      猜你喜欢
      • 2020-06-19
      • 2020-06-19
      • 1970-01-01
      • 2017-04-23
      • 2018-08-15
      • 2020-04-04
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多