如何将 json 响应传递给函数:类型为"unknown"的参数不可分配给类型为"any[]"的参数



我正试图使用api中的数据在函数中使用它:

// Fetch JSON from an external endpoint
d3.json('https://api.jsonbin.io/b/5eee6a5397cb753b4d149343').then(data => this.drawBars(data));

private drawBars(data: any[]): void { ... }

但我遇到了这个错误,不知道如何解决:

错误TS2345:类型为"unknown"的参数不可分配给类型为"any[]"的参数。类型"{}"在类型"any[]"中缺少以下属性:length、pop、push、concat和其他26个属性。

感谢任何指导。

您可以执行以下操作:

d3.json('https://api.jsonbin.io/b/5eee6a5397cb753b4d149343')
.then(data => this.drawBars(data as any[]));

或者,如果你想确定它是一个数组,并避免"as"关键字:

d3.json('https://api.jsonbin.io/b/5eee6a5397cb753b4d149343')
.then(data => {
if(Array.isArray(data) {   
this.drawBars(data)
} else {
// throw error or other logic
}
);

这是因为派生的数据类型是unknown,您正在尝试将其分配给数组类型的输入。

尝试以下

private drawBars(data: any): void { ... }

相关内容

最新更新