【发布时间】:2023-03-21 19:48:01
【问题描述】:
我有以下变量声明
const xScale = d3
.scaleLinear()
.range([0, width - margin])
.domain(
d3.extent(wave, function(d) {
return d[0];
})
);
wave 接收一个由数字数组组成的数组,例如
如果我将d 参数键入为
//
d3.extent(wave, function(d:number[][]) {
return d[0];
})
//
它会返回这个错误
TS2769:没有与此调用匹配的重载。重载 1 of 4, '(array: ArrayLike, accessor: (datum: number[][], index: number, array: ArrayLike) => string | null | undefined): [string, string] | [未定义,未定义]',给出了以下错误。 '(d: number[][]) => number[]' 类型的参数不可分配给 '(datum: number[][], index: number, array: ArrayLike) => string |空 |不明确的'。类型 'number[]' 不可分配给类型 'string'。重载 2 of 4, '(array: ArrayLike, accessor: (datum: number[][], index: number, array: ArrayLike) => Numeric | null | undefined): [undefined, undefined] | [Numeric, Numeric]',给出了以下错误。 '(d: number[][]) => number[]' 类型的参数不可分配给 '(datum: number[][], index: number, array: ArrayLike) => Numeric |空 |不明确的'。类型“数字[]”不可分配给类型“数字”。属性“valueOf”的类型不兼容。类型 '() => Object' 不可分配给类型 '() => number'。类型“对象”不可分配给类型“数字”。
如果我不输入诸如
//
d3.extent(wave, function(d:number[][]) {
return d[0];
})
//
我会收到这个错误
TS2345: '[string, string] | 类型的参数[undefined, undefined]' 不能分配给类型为 '(number | { valueOf(): number; })[]' 的参数。类型 '[string, string]' 不能分配给类型 '(number | { valueOf(): number; })[]'。类型 'string' 不可分配给类型 'number | { valueOf(): 数字; }'。
查看 d3 定义文件,它期望我没有提供一些不同的东西,但它对我有用:
导出函数范围(array: ArrayLike): [string, string] | [未定义,未定义];
关于如何克服这些错误并正确输入的任何提示?非常感谢。
【问题讨论】:
标签: javascript typescript d3.js typescript-typings