如何访问打字稿类型键?
How to access typescript type keys?
有一个后续任务,我完全不明白如何完成它。
我有 TypeScript 类型。它是一个带有枚举键的对象。我想制作一个通用函数来过滤由此类对象组成的数组。
在下面的函数中,oldArray 是要过滤的对象数组,keyOldArray 是 TObject 类型的键之一。我知道我需要在两个不同的地方使用这个函数,并且将使用的两个键是名称和描述。我如何为 TypeScript 指定它?提前谢谢大家!
type TObject = {
id: string;
description: string;
name: string;
tob: string;
};
const arrayFilter = (oldArray: TObject[], keyOldArray: ???) => {
return oldArray.filter((item) => item.keyOldArray === somethingConst);
};
您可以使用 typescript 的 keyof
运算符:https://www.typescriptlang.org/docs/handbook/2/keyof-types.html
您似乎正在尝试根据 keyOldArray 的索引进行过滤,因此您还必须从过滤器回调中提取索引。
const arrayFilter = (oldArray: TObject[], keyOldArray: (keyof TObject)[]) => {
return oldArray.filter((item, index) => item[keyOldArray[index]] === somethingConst);
};
有一个后续任务,我完全不明白如何完成它。
我有 TypeScript 类型。它是一个带有枚举键的对象。我想制作一个通用函数来过滤由此类对象组成的数组。
在下面的函数中,oldArray 是要过滤的对象数组,keyOldArray 是 TObject 类型的键之一。我知道我需要在两个不同的地方使用这个函数,并且将使用的两个键是名称和描述。我如何为 TypeScript 指定它?提前谢谢大家!
type TObject = {
id: string;
description: string;
name: string;
tob: string;
};
const arrayFilter = (oldArray: TObject[], keyOldArray: ???) => {
return oldArray.filter((item) => item.keyOldArray === somethingConst);
};
您可以使用 typescript 的 keyof
运算符:https://www.typescriptlang.org/docs/handbook/2/keyof-types.html
您似乎正在尝试根据 keyOldArray 的索引进行过滤,因此您还必须从过滤器回调中提取索引。
const arrayFilter = (oldArray: TObject[], keyOldArray: (keyof TObject)[]) => {
return oldArray.filter((item, index) => item[keyOldArray[index]] === somethingConst);
};