首页 > 解决方案 > 如何获取数组项的类型

问题描述

如果我有从 node_module 获得的自定义数组的类型(这意味着我无法更改它)

export type CustomArray = Array<
  {
    a: string;
    b: string;
  }
>

定义此数组项之一的类型的正确方法是什么?

到目前为止,我发现

type CustomArrayItem = CustomArray[0]

或者

type CustomArrayItem = CustomArray[number]

有效,但我不确定这是否正确,因为我在文档中找不到任何关于它的信息。

标签: typescript

解决方案


正如您所发现的,两者都运行良好。我会使用CustomArray[number],因为它基本上说“如果我用任何数字索引,CustomArray[0]给我类型”,而说“如果我用 0 索引,给我类型”。两者看似相似,但如果CustomArray是元组类型,结果实际上可能不同:

export type CustomArray = [string, ...number[]];

type I0 = CustomArray[0] // string
type I1 = CustomArray[1] // number
type INumber = CustomArray[number] // string | number

游乐场链接


推荐阅读