【发布时间】:2019-09-30 11:26:44
【问题描述】:
我正在使用带有 const 断言的 TS 3.4.5。如何检索声明的常量数组变量的元素类型?
export type GetArrayElementType<T extends Array<any>> = T extends (infer U)[] ? U : never;
export const MyConstArray = [
'item1',
'item2',
'item3',
] as const;
export type MyConstArrayItem = GetArrayElementType<typeof MyConstArray>;
我想作为输出:
export type MyConstArrayItem = "item1" | "item2" | "item3"
我不完全确定如何提取项目的类型信息,因为由于 const 断言,我的数组不再是数组类型而是一个常量元组,所以GetArrayElementType 不能应用于它.
【问题讨论】:
-
这是错字还是为什么你有两次
item1? -
这能回答你的问题吗? Typescript derive union type from tuple/array values您甚至在评论中自己标记了它:D(stackoverflow.com/questions/45251664/…)
标签: typescript