问题描述:
对对象的类型进行限制后,通过获取key访问属性值报错,如上图所示
问题产生原因:
在使用对象的索引时Typescript无法确定对象的类型,因此默认将其类型设置为any。
解决方法1:忽略
在tsconfig.json中compilerOptions里面新增忽略的代码,如下所示,添加后则不会报错
"suppressImplicitAnyIndexErrors": true,
解决方法2:添加索引签名
在 TypeScript 中,如果你想使用字符串来索引一个对象,该对象的类型必须具有字符串索引签名,这意味着你需要明确告诉 TypeScript,这个对象可以接受字符串键并返回某种类型的值。
type formDataType = {
[key:string]:string |number,
count: number;
day: string | number;
type: string | number;
};
解决方法3:使用keyOf
使用keyof进行判断。你可以使用keyof关键字来判断给定的键是否存在于对象中,例如使用key is keyof typeof object来判断给定的键是否是对象的有效键。
参考博文:
报错:元素隐式具有“any”类型,因为类型为“string”的表达式不能用于索引类型“{name:string;title:string;content:string;}。在类型…