我想写一个可选的泛型(下面例子中的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
会导致错误。
游乐场