我可以写一个函数吗
const f = <T extends ???>(x: T) => ...
这样当且仅当T
没有特定的属性时,对它的调用才能编译?我的具体用例是这个函数:
export declare function withApollo<TProps, TResult = any>(WrappedComponent: React.ComponentType<WithApolloClient<Omit<TProps, "client">>>, operationOptions?: OperationOption<TProps, TResult>): React.ComponentClass<Omit<TProps, "client">>;
我发现类型推断在使用它时效果很差,并且总是需要在我们的代码库中提供显式的类型参数。如果我可以指定T
没有"client"
,我可以提供一个更好的 Package 器。
1条答案
按热度按时间inb24sb21#
是的,你可以在TypeScript中使用条件类型。您可以创建一个类型来检查给定类型中是否存在特定属性,然后使用它有条件地启用或禁用某些行为。在本例中,您希望确保
T
没有名为“client”的属性: