Тип с вычисляемым свойством, используя 'in' из типа - PullRequest
0 голосов
/ 30 апреля 2018

Я генерирую Тип 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'
}

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

1 Ответ

0 голосов
/ 06 марта 2019

Благодаря @ 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'
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...