我有一些效用函数看起来像这样:
export const localStorageToPaginationOptions = <T extends LocalStorage, U>({
searchTerm,
filters,
sortBy,
orderAsc,
...props
}: T & U): PaginationOptions | U => ({
...props,
search: searchTerm,
orderMode: orderAsc ? OrderMode.asc : OrderMode.desc,
orderBy: sortBy,
filters,
});
我希望函数返回PaginationOptions类型或者U类型,如果它已经在函数调用中声明了的话。有没有办法做到这一点?
1条答案
按热度按时间zpqajqem1#
您可以使用条件返回类型来检查
unkown
是否扩展了U
。请注意,您将需要返回值的类型Assert,因为TypeScript通常无法理解具有泛型返回类型的函数的实现。这会在呼叫时产生下列行为:
Playground