Условное свойство для машинописного типа / объекта - PullRequest
1 голос
/ 09 апреля 2020

Допустим, у меня есть тип ингредиента рецепта, который выглядит следующим образом

export type RecipeIngredient = {
  name: string;
  quantity: Number | string;
  measurement: "grams" | "mililitres" | "custom";
};

Пример

const potatoes: RecipeIngredient = { name: 'potatoes', quantity: 100, measurement: 'grams' }

, что хорошо, но я также хочу иметь количество в виде строки только , если измерение выполнено на заказ. Возможно ли это?

Правильный пример

const rosemary: RecipeIngredient = { name: 'rosemary', quantity: 'a handful', measurement: 'custom' }

Что я хочу сделать недействительным

const fish: RecipeIngredient = { name: 'fish', quantity: '100g', measurement: 'grams' }

1 Ответ

2 голосов
/ 09 апреля 2020
export type RecipeIngredient = {
  name: string;
  quantity: Number;
  measurement: "grams" | "mililitres";
} | {
  name: string;
  quantity: string;
  measurement: "custom";
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...