intermediate
satisfies operator
Проверка shape против target type с сохранением узких inferred literal types.
Оператор `satisfies` проверяет, что expression соответствует target type, сохраняя inferred type expression. Полезен для configuration objects, route maps, theme tokens и lookup tables, где нужна validation без потери literal detail.
const routes = {
api: { path: '/v1' },
admin: { path: '/admin' },
} satisfies Record<string, { path: string }>;
Сравните с annotation (может widen), assertion (unsafe) и `as const` (без external shape check). `satisfies` не меняет runtime behavior.
На интервью: объясняйте на конкретном примере и называйте, что проверяют в production code.
Типовые ошибки: путать похожие API и забывать edge cases в live coding.
Компромисс часто между ясностью и безопасностью или expressiveness и maintainability. Чеклист:
- Config objects.
- Сохраняйте literals.
- Только compile-time.