带扩展的Typescript可选泛型



我想写一个可选的泛型(下面例子中的D(并扩展接口。我搞不懂语法。

interface IUpdateItems {
_id: string;
}
export const deleteItem = <T extends IUpdateItems, D = void extends IUpdateItems >(
items: T[],
itemToDelete: T | D
): T[] => {
return items.filter((item) => item._id !== itemToDelete._id);
};

正确的语法如下所示:

export const deleteItem = <T extends IUpdateItems, D extends IUpdateItems = never>(
items: T[],
itemToDelete: T | D
): T[] => {
return items.filter((item) => item._id !== itemToDelete._id);
};

您还应该将void替换为never,因为void不可分配给IUpdateItems会导致错误。

游乐场

最新更新