在打字稿中声明 for in 循环的关键类型

2024-01-02

我有下面的代码

const urlParams = new URLSearchParams(window.location.search);

interface PersonType {
    fname: string
    lname: string
}
const person: PersonType = {fname:"John", lname:"Doe"};

const newObj = {
    newobj: "new value"
}

for(const key in person) {
    urlParams.append(key, newObj[key]); //error
}

我应该如何在 for in 循环中声明关键字符串?


在打字稿中,for..in只会键入正在迭代的键作为string- 不作为被迭代对象的键。自从key输入为字符串,而不是newobj,你不能使用newObj[key],因为该类型中不存在通用字符串。

Use Object.entries相反,立即提取键和值,而不是尝试单独遍历键:

for(const [key, val] of Object.entries(newObj) {
    urlParams.append(key, val);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在打字稿中声明 for in 循环的关键类型 的相关文章

随机推荐