如何从typescript中的对象中正确删除属性

如何从typescript中的对象中正确删除属性,typescript,typescript-generics,Typescript,Typescript Generics,我写下一个泛型,但也许有人知道一个更正确的解决方案 const deleteKeyFromObject = <T extends {}, K extends keyof T>(data: T, key: K) => { const result : any = { ...data }; delete result[key]; return result as Omit<T, K>; } constdeleteKeyFromObject=(数据:T,键

我写下一个泛型,但也许有人知道一个更正确的解决方案

const deleteKeyFromObject = <T extends {}, K extends keyof T>(data: T, key: K) => {
  const result : any = { ...data };
  delete result[key];

  return result as Omit<T, K>;
}
constdeleteKeyFromObject=(数据:T,键:K)=>{
const result:any={…data};
删除结果[键];
返回结果为省略;
}

这可能是一种更好的方法:

const deleteKeyFromObject = <T extends {}, K extends keyof T>(data: T, key: K) => {
  const { [key]: _, ...result } = data;
  return result;
}
constdeleteKeyFromObject=(数据:T,键:K)=>{
常量{[key]:,…result}=数据;
返回结果;
}

result
的类型正确地推断为
Omit

谢谢,我意识到我不需要单独的函数,我可以使用:const{omitKey:,…result}=data;