先贴出前辈的技术文章: 在 Ts 中如何正确的遍历一个对象 - 掘金 (juejin.cn)
基础环境
| 名称 | 版本 | 安装 | 说明 |
|---|---|---|---|
| win10 | @专业版22H2 | --- | --- |
| nvm | @1.1.11 | 自行安装,待补充 | node版本管理 |
| node | @18.16.0 | nvm install 18 | ---主力 |
| npm | @9.5.1 | npm install -g npm | --- |
| yarn | @1.22.19 | npm install -g yarn | --- |
| pnpm | @8.6.6 | npm install -g pnpm | ---主力包管理 |
| vite | @4.4.0 | pnpm i -D vite@4.4.0 | --- |
| typescript | @5.0.2 | pnpm 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])
})