Typescript-泛型被错误地推断为未知

问题描述 投票:1回答:1

所以我有以下通用功能:

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

typescript
1个回答
0
投票

您没有将T传递给该函数,因此他不知道它是什么。

© www.soinside.com 2019 - 2024. All rights reserved.