от *значений* другого поля
например, есть такой интерфейс
interface Result {
id: string;
status: Statuses;
data: any;
}
поле статус описывается в
export const enum Statuses {
started = 0,
progress = 1,
ended = 2,
error = 3,
}
как описать Result, чтобы в data был один тип, если status = 0, другой - если status = 1 и т.д. ?
мне кажется это прямо таки антипаттерн, и вместо него лучше наследовать интерфейсы под разные статусы
подскажите, как это сделать?
type A { status: 0, aField: string }, type B {status: 1, bField: int }
Обсуждают сегодня