Typescript 如何键入筛选对象.entries?

Typescript 如何键入筛选对象.entries?,typescript,typeguards,Typescript,Typeguards,我希望有类似于entryof的东西来保护这样的条目: type EntryOf<T extends object> = { [K in keyof T]: [K, T[K]] }[keyof T]; const carDude={ 姓名:“汤姆”, 年龄:45,, 汽车:“保时捷911” } 界面花花公子{ 名称:字符串; 年龄:人数; } 对象 .参赛作品(卡杜德) .filter((条目):条目是entryof Dude=> 条目[0]==“姓名”| |条目[0]==“年龄”

我希望有类似于entryof的东西来保护这样的条目:

type EntryOf<T extends object> = { [K in keyof T]: [K, T[K]] }[keyof T];
const carDude={
姓名:“汤姆”,
年龄:45,,
汽车:“保时捷911”
}
界面花花公子{
名称:字符串;
年龄:人数;
}
对象
.参赛作品(卡杜德)
.filter((条目):条目是entryof Dude=>
条目[0]==“姓名”| |条目[0]==“年龄”
)

如何使用typeguard解决这个问题?

我倾向于这样定义
EntryOf

type EntryOf<T extends object> = { [K in keyof T]: [K, T[K]] }[keyof T];
您可以看到,返回的数组类型包含类型为
[“name”,string]|[“age”,number]
的元素,我认为这是您想要的

希望有帮助;祝你好运


非常酷,谢谢!我甚至理解,除了最后一部分:最后的
[keyof T]
是怎么说的?是价值观
{[K in keyof T]:[K,T[K]}
看起来像
{name:[“name”,string];age:[“age”,number]}
,所以我正在查找该属性的
[“name”|“age”]
属性值。请参阅。