двух свойств так, чтобы TS понимал, что одно из них является обязательным, но в то же время с ним можно было нормально работать через декомпозицию.
const { prop1, prop2 } = value;
С таким форматом работает нормально, но "качелек" нет:
type Value = { prop1?: number, prop2?: number}
А на такой ругается декомпозиция:
type Value = { prop1: number } | { prop2: number }
type Value = { prop1: number; prop2?: never } | { prop2: number; prop1?: never }
Обсуждают сегодня