forin循环对象,ts报错

当你在TypeScript中使用 for...in 循环遍历一个对象时,你可能会碰到这样的类型错误,这是因为 TypeScript 静态类型检查的规则,需要明确的知道你正在访问的对象属性的类型。
对于这种情况,你可以使用类型断言(Type Assertion)来明确你所知道的更具体的类型
// 假设你有一个这样的对象
interface MyObject {
  id: number;
  name: string;
}

let obj: MyObject = {id: 1, name: 'Vue3'};

// 使用 for...in 循环并且使用类型断言
for (let key in obj) {
  let value = obj[key as keyof MyObject];
  console.log(value);
}
在上面的代码中,key as keyof MyObject 是一种类型断言,我们告诉TypeScript编译器,我们确信 key 是 MyObject 类型的一个键。
类型断言是我们对 TypeScript 编译器的一个明确的指示,告诉它我们知道自己在做什么,它不应该对此产生错误。在处理对象和 for...in 循环时,它能帮助我们避免类型错误。

 

posted @ 2024-04-10 16:56  生命在于折腾Up  阅读(300)  评论(0编辑  收藏  举报