所以我有以下通用功能:
export function useClientRequest<T, R extends (...args: any) => AxiosPromise<T>>(
func: R,
...args: Parameters<R>
): [T | undefined, boolean, AxiosError | undefined] {
//irrelevant
}
概括来说,函数的返回值包含类型T的值,应该如上所述进行推断。
然后我尝试如下使用它:
interface Foo {
//...
}
function fooGetter(url: string): AxiosPromise<Foo> {
return Axios.get<Foo>(url);
}
const [data] = useClientRequest(fooGetter, 'url.com');
但是我的IDE报告data
的类型为unknown
,因为T
被推断为unknown
。
我做错什么了吗,或者这是打字稿限制吗?
Typescript v3.7.2
您没有将T传递给该函数,因此他不知道它是什么。