Тип с вычисляемым свойством, используя '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'
}

Детская площадка

Другие вопросы по тегам