javascript - 如何将 json 响应传递给函数:“未知”类型的参数不可分配给“任何 []”类型的参数
问题描述
我正在尝试使用来自 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 个。
任何指导表示赞赏。
解决方案
您可以执行以下操作:
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
}
);
推荐阅读
- apache-spark - Hive 分区、分桶和排序表 - 多个插入
- node.js - 使用 Node Js 的 AWS Lambda 在 http.request() 上提供“连接 ETIMEDOUT”
- python - __getitem__ 的 idx 如何在 PyTorch 的 DataLoader 中工作?
- javascript - scrollTop 在 iOS Safari 上的行为完全相反
- javascript - 我们可以使用 jsx 字段生成对象吗?
- javascript - 从 Object.freeze 获取随机对象
- javascript - Meteor 1.8.1 SSL 双连接
- stormcrawler - AWS 节点上的 Storm-crawler 种子注入失败
- python - Django在if语句中重定向不起作用
- java - 这个setter方法有什么问题?(爪哇)