元素隐式具有 “any“ 类型,因为类型为 “string“ 的表达式不能用于索引类型
元素隐式具有 “any” 类型,因为类型为 “string” 的表达式不能用于索引类型 “{ minLon: string; maxLon: string; minLat: string; maxLat: string; minTime: string; maxTime: string; keyword: string; subjct: string; ele: string; }”。
在类型 “{ minLon: string; maxLon: string; minLat: string; maxLat: string; minTime: string; maxTime: string; keyword: string; subjct: string; ele: string; }” 上找不到具有类型为 “string” 的参数的索引签名。ts-plugin(7053)
使用typescript来进行类型定义和约束时,经常会出现类似报错: 元素隐式具有 “any” 类型,因为类型为 “string” 的表达式不能用于索引类型。
例如:定义一个字典映射
const searchParams = ref({
minLon: '-180',
maxLon: '180',
minLat: '-90',
maxLat: '90',
minTime: '',
maxTime: '',
keyword: '',
subjct: '',
ele: ''
})
在使用时,根据传入的值获取对应的星期,如果直接这么写,编译器会报错:
searchParams[prop]
正确写法
searchParams[prop as keyof typeof searchParams]