TypeScript如何提取嵌套数组项中的Item类型?
获取PaginatedResult中results数组里的Item类型
你可以通过索引访问类型的嵌套写法直接提取目标类型,具体步骤如下:
- 用
PaginatedResult["results"]拿到数组类型{ item: Item }[] - 加上
[number]取出数组单个元素的类型:{ item: Item } - 最后用
["item"]提取该对象中item属性的类型,也就是你要的Item
完整写法如下:
type ExtractedItem = PaginatedResult["results"][number]["item"];
举个完整示例验证效果:
// 先定义Item类型 interface Item { id: number; name: string; } interface PaginatedResult { results: { item: Item; }[]; pagination: { pageSize: number; offset: number; total: number; } } // 提取Item类型 type ExtractedItem = PaginatedResult["results"][number]["item"]; // 测试:ExtractedItem会被推断为{ id: number; name: string },和Item完全一致 const testItem: ExtractedItem = { id: 1, name: "test" };
内容的提问来源于stack exchange,提问作者Sergei Klinov
相关产品推荐
相关产品推荐

