Тип с вычисляемым свойством, используя 'in' из типа
Я генерирую Тип Option
от объекта Options
с помощью typeof
а также keyof
,
Я определяю другой тип - Dropdown
которые вычислили свойство и используют Option
с помощью in
,
Я получаю ошибку:
Свойство 'options2' отсутствует в типе '{ [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'
}
0 ответов
Благодаря @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'
}