Название может быть немного запутанным, поэтому давайте попробуем объяснить лучше.
Скажем, у меня есть тип с именем Stage
.
type Stage = 'beta' | 'gamma' | 'prod';
Я хочу создать новый тип, где ключи могут быть только от Stage
- но я не хочу требовать, чтобы все возможные ключи Stage
были ключами для созданного объекта.
Например, что-то вроде этого было бы хорошо:
const obj: NewVal = {
beta: value,
prod: value2,
};
Я пытался использовать следующее:
type NewVal = Record<Stage, string>;
type NewVal = { [key in Stage]: string };
, но для обеих этих опций требуется, чтобы все ключи Stage
присутствовали на объекте. Использование Partial
, кажется, работает, но оно создает больше проблем при работе с возможными значениями undefined
, поэтому я бы предпочел не иметь с этим дело.
Есть ли способ достичь sh того, что я ' я пытаюсь сделать?