键入预定义对象的键

问题描述 投票:0回答:1

我有一个如下所示的对象:

type Example = { 
  prop: string
}

const example = {
 a: { prop: "a" },
 b: { prop: "b" },
 c: { prop: "c" },
}

example.<hinting; a, b, c>

当我将对象输入为记录时,我丢失了类型提示,因为

string
太宽了:

const example: Record<string, Example> = {
 a: { prop: "a" },
 b: { prop: "b" },
 c: { prop: "c" },
}

example.<no hinting>

如何在不使用单独的类型和辅助函数的情况下将键类型限制为该对象中定义的属性来代替

Record<string, Example>

typescript
1个回答
0
投票

如果我理解正确,你可以这样做:

const example = {
 a: { prop: "a" },
 b: { prop: "b" },
 c: { prop: "c" },
} as const satisfies Record<string, Example>

可以省略

"as const"

© www.soinside.com 2019 - 2024. All rights reserved.