如何从 Typescript 中的对象值数组生成类型
How to generate a type from an array of object value in Typescript
我有一系列这样的路线:
export const routes = [
{ name: 'Home', component: HomeScreen },
{ name: 'CreateProgram', component: CreateProgramScreen },
{ name: 'AddExercises', component: AddExercisesScreen },
]
我想从路由名称中以编程方式生成如下所示的类型别名:
type RouteNames = 'Home' | 'CreateProgram' | 'AddExercises'
键入数组 as const
这样它就不会自动变宽,然后你可以在它的类型上使用 [number]
得到所有对象类型的联合,然后访问 ["name"]
获取 name
属性.
的类型
export const routes = [
{ name: 'Home', component: HomeScreen },
{ name: 'CreateProgram', component: CreateProgramScreen },
{ name: 'AddExercises', component: AddExercisesScreen },
] as const;
type RouteNames = (typeof routes)[number]["name"];
我有一系列这样的路线:
export const routes = [
{ name: 'Home', component: HomeScreen },
{ name: 'CreateProgram', component: CreateProgramScreen },
{ name: 'AddExercises', component: AddExercisesScreen },
]
我想从路由名称中以编程方式生成如下所示的类型别名:
type RouteNames = 'Home' | 'CreateProgram' | 'AddExercises'
键入数组 as const
这样它就不会自动变宽,然后你可以在它的类型上使用 [number]
得到所有对象类型的联合,然后访问 ["name"]
获取 name
属性.
export const routes = [
{ name: 'Home', component: HomeScreen },
{ name: 'CreateProgram', component: CreateProgramScreen },
{ name: 'AddExercises', component: AddExercisesScreen },
] as const;
type RouteNames = (typeof routes)[number]["name"];