TypeScript 中for in遍历,元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型

第一种方案、使用[key: string]:string 形式为键名声明类型

声明类型:
interface FormInfoData {
    [materialCode: string]: string
    materialName: string
    materialUnit: string
    materialItem: string
    materialOwnership: string
    materialclassCode: string
    materialclassName: string
    materialSpecification: string
}
声明变量:
const formInfoData = reactive<FormInfoData>({
    materialCode: '',
    materialName: '',
    materialUnit: '',
    materialItem: '',
    materialOwnership: '',
    materialclassCode: '',
    materialclassName: '',
    materialSpecification: ''
})
使用遍历变量赋值:
 Object.keys(formInfoData).forEach((prop: string) => {
      formInfoData[prop] = prop in row ? row[prop] : ''
  })

第二种方案、直接声明配置项
在tsconfig.json中compilerOptions里面新增忽略的代码,如下所示,添加后则不会报错

"suppressImplicitAnyIndexErrors": true

你可能感兴趣的:(TypeScript,vue3,typescript,linux,ubuntu)