使用来自类型的 'in' 计算 属性 类型
Type with computed property using 'in' from type
我使用 typeof
和 keyof
从对象 Options
生成类型 Option
。
我定义了另一种类型 - Dropdown
,它计算了 属性 并使用 in
.
使用 Option
我收到一个错误:
Property 'options2' is missing in type '{ [Options.option1]: string; }'.
我该如何正确实施?
const Options = {
option1: 'option1' as 'options1',
option2: 'option1' as 'options2',
option3: 'option1' as 'options3',
}
type Option = typeof Options[keyof typeof Options];
type Dropdown = { [key in Option]: string };
const obj: Dropdown = {
[Options.option1]: 'test'
}
感谢@TitianCernicova-Dragomir,我只需要将道具设置为可选 (?
),如下所示:
const Options = {
option1: 'option1' as 'options1',
option2: 'option1' as 'options2',
option3: 'option1' as 'options3',
}
type Option = typeof Options[keyof typeof Options];
type Dropdown = { [key in Option]?: string };
const obj: Dropdown = {
[Options.option1]: 'test'
}
我使用 typeof
和 keyof
从对象 Options
生成类型 Option
。
我定义了另一种类型 - Dropdown
,它计算了 属性 并使用 in
.
Option
我收到一个错误:
Property 'options2' is missing in type '{ [Options.option1]: string; }'.
我该如何正确实施?
const Options = {
option1: 'option1' as 'options1',
option2: 'option1' as 'options2',
option3: 'option1' as 'options3',
}
type Option = typeof Options[keyof typeof Options];
type Dropdown = { [key in Option]: string };
const obj: Dropdown = {
[Options.option1]: 'test'
}
感谢@TitianCernicova-Dragomir,我只需要将道具设置为可选 (?
),如下所示:
const Options = {
option1: 'option1' as 'options1',
option2: 'option1' as 'options2',
option3: 'option1' as 'options3',
}
type Option = typeof Options[keyof typeof Options];
type Dropdown = { [key in Option]?: string };
const obj: Dropdown = {
[Options.option1]: 'test'
}