Element implicitly has an ‘any’ type because expression of type ‘any’ can’t be used to index type
problem
Element implicitly has an ‘any’ type because expression of type ‘any’ can’t be used to index type
// 修改前
const orderStatusMap = {
101: '待付款',
102: '用户取消',
901: '已完成',
};
<el-table-column align="center" label="订单状态">
<template #default="scope">
// ts报错:Element implicitly has an 'any' type because expression of type 'any' can't be used to index type
<el-tag>{{ orderStatusMap[scope.row.status ]}}</el-tag>
</template>
</el-table-column>
reason
scope.row.status 的值,ts无法确定是否在map key范围内
solution
// 修改后 扩到了key的范围
type IFiledMap = {
[key: string]: string
}
const orderStatusMap: IFiledMap = {
101: '待付款',
102: '用户取消',
901: '已完成',
};
<el-table-column align="center" label="订单状态">
<template #default="scope">
<el-tag>{{ orderStatusMap[scope.row.status ]}}</el-tag>
</template>
</el-table-column>