TS中Object.keys遍历对象

79 阅读1分钟

先贴出前辈的技术文章: 在 Ts 中如何正确的遍历一个对象 - 掘金 (juejin.cn)

基础环境

名称版本安装说明
win10@专业版22H2------
nvm@1.1.11自行安装,待补充node版本管理
node@18.16.0nvm install 18---主力
npm@9.5.1npm install -g npm---
yarn@1.22.19npm install -g yarn---
pnpm@8.6.6npm install -g pnpm---主力包管理
vite@4.4.0pnpm i -D vite@4.4.0---
typescript@5.0.2pnpm i D typescript@5.0.2---

主要记录报错的解决办法

Object.keys

在使用Object.keys时, 我们可以使用as运算符来解决.

function print(obj: Person) {
  Object.keys(obj).forEach((k) => {
    // ✅
    console.log(k, obj[k as keyof Person].toUpperCase());
  });
}

一般自己写声明的类需要加上typeof

const testObj = {
    name:'张三',
    age:18,
    hobby:['swim','football','sleep']
}
Object.keys(testObjNoChildObj).forEach(key=>{
    console.log(testObj[key as keyof typeof testObj])
})