如果我有一个类型为string[]
的数组,并且想从该数组中提取类型,则必须执行以下操作:
const typeArgs = type.typeArguments;
typeArgs[0]; // string
但是如果我有一个类型为[number, string]
的元组并且想要获得类型为string | number
的联合呢?
答案 0 :(得分:3)
获取元组类型的单个元素类型与获取数组类型的元素类似-使用typeArguments
属性:
const [numberType, stringType] = type.typeArguments;
在下面的示例
const arr: [string, number] = ['a', 1]; arr.map(el => el)
中,我需要提取el类型。
如果您有权访问el
节点,则可以获取它并询问其类型是(TypeChecker#getTypeAtLocation
)。如果您没有访问权限,那么据我所知,不可能使用编译器API创建Type
对象。相反,我建议根据typeArguments
属性创建您自己的转换表示形式,并在您的代码中使用它。