ts: for循环 L'élément a implicitement un type 'any' car l'expression d'index n'est pas de type 'number'.
// beofre
const props = defineProps({
columns: {
type: Array,
}
})
function dataChange(data) {
for (let item in props.columns) {
// item报错:Element implicitly has an 'any' type because index expression is not of type 'number'.
const key = props.columns[item].key;
props.columns[item].visible = !data.includes(key);
}
}
Solution:
- Le message d'erreur doit être dû au fait que le type d'élément de colonne est incertain, de sorte que le type d'élément de variable de traversée ne peut pas être déterminé
- Trouver le type spécifique de props.columns ou tout semble fonctionner
// after 使用any类型
function dataChange(data:any[]) {
let columns = props.columns as Array<any>
for (let item in columns) {
const key = (columns[item]).key;
columns[item].visible = !data.includes(key);
}
}
// after 使用 column 真实类型
interface ColumnsElement {
key: number,
value: string,
visible: boolean
}
const props = defineProps({
columns: {
type: Array<ColumnsElement>,
}
})
function dataChange(data:any[]) {
let columns = props.columns as Array<ColumnsElement>
for (let item in columns) {
const key = (columns[item]).key;
columns[item].visible = !data.includes(key);
}
}