类型'number [] []'的参数不能分配给'ArrayLike <number>'类型的参数

时间:2019-06-08 14:52:45

标签: d3.js typescript3.0

我正在使用打字稿和d3js构建散点图。

tsconfig在约束方面非常强大。

错误链接到变量:数据

错误

  

'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"
        ]
    }

1 个答案:

答案 0 :(得分:0)

我放错了类型转换“ d3.max <number>”->“ <number> d3.max”

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