Я изо всех сил пытаюсь понять Расширенные типы в Typescript.
Я хочу, чтобы тип имел как обязательные свойства, так и необязательные свойства, но хотел бы, чтобы список свойств был легко читаемым.
У меня есть список обязательных свойств в качестве типа и список необязательных свойств в качестве другого типа.
type BaseProperties =
| 'price'
| 'cost'
| 'location';
type Features =
| 'radio'
| 'wings'
| 'tires'
| 'rockets'
| 'slushie_machine';
Я хочу, чтобы мой тип был:
type WithFeatures = {
price: string;
cost: string;
location: string;
radio?: string | number;
wings?: string | number;
tires?: string | number;
rockets?: string | number;
slushie_machine?: string | number;
};
И тогда я бы хотел массив:
public ThingsWithFeatures: WithFeatures[] = [];
Я пытался:
type WithFeatures = Required<BaseProperties> & Partial<Features>;
... который не работал.
Что мне нужно сделать, чтобы использовать обязательный и частичный, чтобы получить тип WithProperties
, как описано?