我正在尝试执行此计算方法:
get dronesFiltered(){
const filtered = this.drones.filter((drone) => {
return drone.id.toString().indexOf(this.filterId) > -1 && drone.name.toLowerCase().toString().indexOf(this.filterName.toLowerCase()) > -1 && drone.status.toLowerCase().toString().indexOf(this.selectedStatus.toLowerCase()) > -1 && this.statusFly(drone.fly, drone.status).indexOf(this.selectedCurrentFly) > -1;
});
return filtered;
}
运行正常,但显示以下错误:
Property 'status' does not exist on type 'never'
它发生在状态,id,名称,飞行(我尝试进行过滤的每个字段)上。 我该如何处理?
这是我的组件代码:
@Component({})
export default class List extends Vue {
drones = []
selectedStatus = ''
selectedCurrentFly = ''
filterId = ''
filterName = ''
mounted(){
this.listDrones(1);
}
get dronesFiltered(){
const filtered = this.drones.filter((drone) => {
return drone.id.toString().indexOf(this.filterId) > -1 && drone.name.toLowerCase().toString().indexOf(this.filterName.toLowerCase()) > -1 && drone.status.toLowerCase().toString().indexOf(this.selectedStatus.toLowerCase()) > -1 && this.statusFly(drone.fly, drone.status).indexOf(this.selectedCurrentFly) > -1;
});
return filtered;
}
public async listDrones(current: number) {
try {
const res = await dronesController.getDronesWithLimit(current);
const resTotal = await dronesController.getDrones();
this.totalRows = resTotal.data.length;
this.drones = res.data;
} catch (err) {
console.log(err);
}
}
}
答案 0 :(得分:1)
仅提供澄清;)
因为我们希望--strictNullChecks几乎总是在 与--noImplicitAny结合使用,扩大类型似乎毫无意义 空数组文字从never []到any []的数量,因为我们将立即 报告扩大后的隐式任何错误。好像更好 保留更具体的never []类型并要求程序员 如果数组实际上是要添加一个类型注释 修改。
如此处所述: TypeScript GitHub pull #8944
答案 1 :(得分:0)
我解决了我的问题,我只需要将它添加到我的“无人机”变量中(但我不明白为什么必须这样做):
drones: any[] = []