强制用户提供通用类型

时间:2019-08-30 17:11:34

标签: reactjs typescript typescript-generics

当前正在使用apollo的React新钩子

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

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

1 个答案:

答案 0 :(得分:1)

我假设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, ...);