gpt4 book ai didi

javascript - 在 typescript 中声明 for in 循环的键类型

转载 作者:行者123 更新时间:2023-12-05 03:46:25 30 4
gpt4 key购买 nike

我有以下代码

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
}

https://codesandbox.io/s/vanilla-ts?utm_source=dotnew&file=/src/index.ts:0-500

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

最佳答案

在 TypeScript 中,for..in 只会将被迭代的键键入为 string - 而不是被迭代的对象的键。由于 key 是字符串类型,而不是 newobj,您不能使用 newObj[key],因为通用字符串不存在于类型上。

改为使用 Object.entries,一次提取键和值,而不是尝试单独通过键:

for(const [key, val] of Object.entries(newObj) {
urlParams.append(key, val);
}

关于javascript - 在 typescript 中声明 for in 循环的键类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65300784/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com