【问题标题】:Delete property of generic type删除泛型类型的属性
【发布时间】:2020-11-06 21:46:09
【问题描述】:

我有以下通用函数,我想将 any 替换为

export const deleteFile = async (item: any, propName: string) => {
  const url = item[propName];
  await deleteFileByUrl(url);
  return omit<any>(item, propName);
};

我很难定义一个具有 [propName]: 字符串属性的 T,然后返回没有该属性的类型 T。

【问题讨论】:

    标签: typescript


    【解决方案1】:

    将解构与Omit 类型相结合,您可以执行以下操作:

    export const deleteProperty = <T, K extends keyof T>(obj: T, id: K): Omit<T, K> => {
        const { [id]: _, ...newState } = obj;
        return newState;
    };
    

    【讨论】:

    • 仅供参考,如果要使用omit,则为await deleteFileByUrl(item[propName]); return omit(item, propName)
    猜你喜欢
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2019-08-12
    • 2020-08-06
    • 2011-05-25
    • 1970-01-01
    相关资源
    最近更新 更多