强制用户提供通用类型

Force user to supply a generic type

目前正在使用 apollo 的 React 新钩子,

const { data, error, loading } = useQuery(GET_CUSTOMERS);

在 TypeScript 存储库中。尽管 noImplicitAny 已激活,但上述函数调用不会产生类型错误。是否可以强制用户为带有泛型的函数提供类型?

我假设 noImplicitAny 不会抛出异常,因为 GET_CUSTOMERS 遵循参数的类型。泛型仅用于铸造。

函数签名:https://www.apollographql.com/docs/react/api/react-hooks/

function useQuery<TData = any, TVariables = OperationVariables>(query: DocumentNode, options?: QueryHookOptions<TData, TVariables>,): QueryResult<TData, TVariables> {}

如果要强制执行自己的接口,可以包装函数并指定泛型。

type T = AClass | MyInterface | ect;
const myUseQuery = (a: T, ...) => useQuery<T, ...>(a, ...);