【发布时间】:2021-11-10 11:56:33
【问题描述】:
在 Typescript 中,有没有办法用泛型引用函数类型,而不必实例化泛型? (在实际调用函数时将它们传递给实例化)。
例如,我有以下类型:
type FetchPageData<T> = (client : APIClient<T>) => T;
其中 APIClient 是这样的抽象类:
export abstract class APIClient<T> {
abstract getData(demoDataIsSelected : boolean, queryParameters ?: ApiQueryParameters) : T;
}
我想创建一个这种类型的函数,但如果我尝试:
fetchPageData : FetchPageData = client => {
return client.getData(x, y);
}
Typescript 要求我为 T 提供泛型类型。我想要的类似于我们在引用函数定义时所做的,而不是调用它。同样,我希望 this 引用类型定义而不需要 T,因为 T 只涉及函数的调用。
如果不是这样,我在实例化时获取 T 并将其传递给 FetchPageData 的语法是什么? (它必须使用 const 语法,而不是函数,因为我实际上是在 react 上使用 useCallback 进行分配)
【问题讨论】:
标签: typescript