我正在尝试使用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:无法将类型“未知”的参数分配给类型“任何[]”的参数。 类型“ {}”缺少类型“ any []”中的以下属性:length,pop,push,concat和另外26个。
任何指导都值得赞赏。
答案 0 :(得分:1)
您可以执行以下操作:
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
}
);
答案 1 :(得分:0)
这是因为数据的派生类型为
unknown
,而您正在尝试 将其分配给数组类型的输入。
尝试以下
private drawBars(data: any): void { ... }