【问题标题】:Force user to supply a generic type强制用户提供泛型类型
【发布时间】:2019-08-31 05:37:30
【问题描述】:

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

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

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

【问题讨论】:

标签: reactjs typescript typescript-generics


【解决方案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, ...);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    相关资源
    最近更新 更多