Сегодня разобрал крутую фичу в TypeScript оператор satisfies… — xycu2.rar — TG.ME

🔥 Сегодня разобрал крутую фичу в TypeScript оператор satisfies (появился в TS 4.9).

Раньше была частая проблема: если задаёшь объекту строгий тип (например, Record), то TypeScript забывает, где у тебя строка, а где массив. Из-за этого нельзя было просто так вызвать .toUpperCase() у строки без лишних проверок.

Оператор satisfies решает это идеально:
1. Он ПРОВЕРЯЕТ, что объект соответствует типу.
2. Но НЕ СУЖАЕТ автовыведенные типы полей!

type Colors = "red" | "green" | "blue"
type RGB = [red: number, green: number, blue: number]

const palette = {
red: [255, 0, 0],
green: "#00ff00",
blue: [0, 0, 255],
} satisfies Record<Colors, string | RGB>

const greenNormalized = palette.green.toUpperCase()


Теперь TS точно знает, что palette.green это именно string, и спокойно даёт крутить с ним любые строковые методы.

Код и примеры закинул в конспекты, двигаемся дальше 🚀
September 26, 2026 4