TypeScript Fetch response.Json<T> - 预期 0 个类型参数,但得到 1 个

标签 typescript fetch-api

请原谅我的无知,但我正在尝试在 TypeScript 中实现提取,我一直在浏览这些示例,但无法编译。我是 TypeScript 和 Promise 的新手,我发现了这个例子:

How to use fetch in typescript

我正在尝试实现这个:

private api<T>(url: string): Promise<T> {
        return fetch(url)
          .then(response => {
            if (!response.ok) {
              throw new Error(response.statusText)
            }
            return response.json<T>()
          })          
}

但是编译器显示错误:

[ts] 需要 0 个类型参数,但得到 1 个。

我不确定问题出在哪里,但基本上我正在尝试实现一个包装 API 调用以返回项目数组的类,并且我已经尝试过 async/await,但似乎没有任何效果。任何帮助将不胜感激。

最佳答案

似乎签名不再存在,改为使用此代码:

response.json().then(data => data as T);

是的,这会返回一个强类型数据。 下面是完整的代码片段。

private api<T>(url: string): Promise<T> {
    return fetch(url)
      .then(response => {
        if (!response.ok) {
          throw new Error(response.statusText)
        }
        return response.json().then(data => data as T);
      })          
}

关于TypeScript Fetch response.Json<T> - 预期 0 个类型参数,但得到 1 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51341395/

相关文章:

Javascript 提取处理 json 和 blob

javascript - 如何在 Typescript 中声明 NPM 的模块公共(public)类型定义

javascript - 如何传入 Tesseract 选项进行页面分割?

angular - 如何使用ionic 2 typescript从本地JSON获取数据到HTML页面

angular - 除了通过其索引之外,还有另一种访问 *ngFor 项目的方法吗

typescript - 带有 typescript 的 Vue2,类型上不存在属性

javascript - 获取 API,在 useFinalURL 上重新发布 formData

javascript - 请求的资源上不存在 'Access-Control-Allow-Origin' header —尝试从 REST API 获取数据时

javascript - 了解 JavaScript Fetch 调用

json - Vue 获取 response.json promise 不会创建响应式(Reactive) setter/getter