gpt4 book ai didi

typescript - 如何使用 Object.keys() 键入嵌套对象?

转载 作者:行者123 更新时间:2023-12-03 07:59:42 24 4
gpt4 key购买 nike

我正在使用嵌套对象并尝试使用 Object.keys() 和 forEach() 获取属性。问题是当我想访问嵌套键filteringState[item][el]时。

如何输入这样的函数?

interface InitialStateTypes {
country: {
"italy": boolean,
},
board: {
"full": boolean,
},
transport: {
"bus": boolean,
"own": boolean
},
}

interface FilteringDataTypes {
country: string[],
board: string[],
transport: string[],
}

const collectFilteringData = (filteringState: InitialStateTypes) => {
let filteringData = <FilteringDataTypes>{};

Object.keys(filteringState).forEach((item) => {
Object.keys(filteringState[item]).forEach((el) => {
if (filteringState[item][el]) {
if (!filteringData[item]) {
filteringData[item] = [el];
} else {
filteringData[item] = [...filteringData[item], el];
}
}
});
});
return filteringData;
};


export default collectFilteringData;

最佳答案

您可以使用keyof运算符。

示例:

type Point = { x: number; y: number };
type P = keyof Point;

这里有更多详细信息:https://www.typescriptlang.org/docs/handbook/2/keyof-types.html

嵌套数据:

type Point = { test: {x: number; y: number} };
type P = keyof Point["test"];

关于typescript - 如何使用 Object.keys() 键入嵌套对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74728315/

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