typescript - Typescript + Vue.js:“从不”类型上不存在属性“xxx”
问题描述
我正在尝试执行此计算方法:
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'
它发生在 status,id,name,fly (我试图进行过滤的每个字段)。我该如何处理?
这是我的组件代码:
@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);
}
}
}
解决方案
只是为了提供澄清;)
由于我们期望 --strictNullChecks 几乎总是与 --noImplicitAny 结合使用,因此将空数组字面量的类型从 never[] 扩大到 any[] 似乎毫无意义,因为我们将在扩大后立即报告隐式 any 错误. 保留更具体的 never[] 类型似乎更好,如果实际上要修改数组,则要求程序员添加类型注释。
如此处所述: TypeScript GitHub pull #8944
推荐阅读
- windows - 使用 Laravel 控制台选择方法时,Git Bash 控制台输出崩溃
- bash - 如何从 cURL 连接到 Rest API USPS 门户?
- ios - 在传递数据之前在 tableview 中丢失行 id
- ios - QLPreviewController 不显示文档
- asp.net - Blazor 服务器端应用上的子 Blazor 应用
- java - Error in if statement of Singly Linked List Program
- perl - 在 Perl 中将数组传递给 getopt
- javascript - 计算unix时间后替换数组中的值
- python - 熊猫根据条件移动行
- json - 如何在scala中读取json数组的所有元素