@Mr_Epic
Web программист

Как в интерфейсе задать структуру объекта, с обязательным ключом и любым количеством другого типа?

Есть вот такая структура записи команд:
export interface cmd {
    _about: string,
    id: number,
}
export interface category {
    _about: string,//Вот тут проблема
    [cmd: string]: cmd
}
export interface cmdList {
    [category: string]: category
}

const list: cmdList = {
    system: {
        _about: "Системные команды",
        ok: {
            _about: "Успешно принятая команда",
            id: 0
        },
        err: {
            _about: "Ошибка принятие команды",
            id: 1
        }
    }
};


Как правильно задать обязательно поле _about типа string у category, а все остальные поля типа cmd?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
@disappearedstar
Фронтенд-разработчик
https://basarat.gitbooks.io/typescript/docs/types/... раздел "Excluding certain properties from the index signature"
Выглядеть в вашем случае будет так.
Лучше построить этот объект по-другому:
{
  system: {
    _about: ...,
    commands: {
      ok: { ... },
      err: { ... }
    }
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы