如何在typescript中按名称检查泛型类型是否具有属性?

如何在typescript中按名称检查泛型类型是否具有属性?,typescript,Typescript,我有下面的打字脚本代码。在函数体中,我想检查事件中的每个键是否存在于T类型中。如何在typescript中执行此操作 export const convert = <T>(event: { [key: string]: any }) => { // how can I check whether each key in event exists in type T } 考虑以下内容,但也必须键入事件 export const convert = <T extend

我有下面的打字脚本代码。在函数体中,我想检查
事件中的每个
键是否存在于
T
类型中。如何在
typescript
中执行此操作

export const convert = <T>(event: { [key: string]: any }) => {
   // how can I check whether each key in event exists in type T
}

考虑以下内容,但也必须键入
事件

export const convert = <T extends Record<string, unknown>>(event: Record<keyof T, unknown>) => {
export const convert=(事件:记录)=>{

请考虑以下事项,但也必须键入
事件

export const convert = <T extends Record<string, unknown>>(event: Record<keyof T, unknown>) => {
export const convert=(事件:记录)=>{

您不能,因为类型在编译时被擦除(运行时不存在关于
t
的信息)你到底想要什么?作为这个检查的结果,你想要什么?键入或能够在这种情况下包装代码?即使类键不是原型的一部分,你也不能查询它们,因为类型在编译时被删除(运行时不存在关于
t
的信息)你到底想要什么?作为这项检查的结果,你想要什么?键入或能够在这种情况下包装代码?即使在类键不属于原型的情况下,你也无法查询它们,
事件
是通过http从API网关传递的。因此,我没有办法约束类型。如果事件的字段多于
T
的字段,它将包括这些不需要的字段,对吗?在这种情况下,typescript不能帮助您。在运行时没有typescript,它被编译为纯js。因此您必须实现运行时逻辑。
事件
是通过http从API网关传递的。因此我没有办法约束类型如果事件包含的字段多于
T
的字段,它将包含这些不需要的字段,对吗?在这种情况下,typescript无法帮助您。在运行时没有typescript,它被编译为纯js。因此您必须实现运行时逻辑。