代码拉取完成,页面将自动刷新
/**
* 由于泛型提供了对类型结构的复用能力,我们也经常在 对象类型 结构中使用泛型。
* 最常见的一个例子应该还是 响应类型结构 的泛型处理:
*/
interface IRes<TData = unknown> {
code: number;
error?: string;
data: TData;
}
/**
* 上面IRes接口,描述了一个通用的响应类型结构,预留出了实际响应数据的泛型坑位,
* 然后在 请求函数 中就可以传入 特定的响应类型 了:
*/
interface IUserProfileRes {
name: string;
homepage: string;
avatar: string;
}
function fetchUserProfile(): Promise<IRes<IUserProfileRes>> { return }
type StatusSucceed = boolean;
function handleOperation(): Promise<IRes<StatusSucceed>> { return }
/**
* 泛型嵌套的场景也非常常用,比如对存在分页结构的数据,也可以将其分页的响应结构抽离出来:
*/
interface IPaginationRes<TItem = unknown> {
data: TItem[];
page: number;
totalCount: number;
hasNextPage: boolean;
}
//这些结构看起来很复杂,但其实就是简单的泛型参数填充而已
function fetchUserProfileList(): Promise<IRes<IPaginationRes<IUserProfileRes>>> { return }
//export {}:解决“无法重新声明块范围变量”错误提示问题
export { }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。