如何确定TypeScript中Promise的泛型类型?JS转TS问题求助
解决方法
首先,你需要先定义API返回的用户数据结构对应的TypeScript类型,再把Promise的泛型指定为该类型的数组。
步骤1:定义数据类型
根据目标API的返回结构,用户对象包含id、email、first_name、last_name、avatar这些字段,先定义对应的类型:
interface User { id: number; email: string; first_name: string; last_name: string; avatar: string; }
步骤2:完善函数的类型标注
给参数pageNum添加number类型,将Promise的泛型指定为User[](用户数组),同时修正原函数中变量未声明的问题:
async function getData(pageNum: number): Promise<User[]> { let response = await (await fetch(`https://reqres.in/api/users?page=${pageNum}`)).json(); response = response.data; return response.map(user => user); }
额外提示
- 要是不确定API返回结构,可以先在浏览器控制台查看返回数据,再精准定义类型;
- 原函数里的
map(user => user)属于冗余操作,直接return response.data就能达到同样效果。
内容的提问来源于stack exchange,提问作者arta
相关产品推荐
相关产品推荐

