Небольшой пример использования оператора satisfies в TypeScript
Оператор `satisfies` указывает TS на то, какой тип переменной мы ожидаем без переопределения ее собственного типа. В некоторых случаях такая возможность оказывается очень полезной. Рассмотрим простой пример, где данный оператор может оказаться полезным.
У нас есть список продуктов `listA` и нужно подготовить объект, ключи которого были бы произвольными строками, а значениями - любое из входящих в список.
Если мы попытаемся указать значение не из списка, например `carrot`, то получим предупреждение, что и требовалось.
Теперь нам нужно из объекта `listMap1` вывести тип ключей, входящих в него. И здесь возникает проблема, так как в самом начале мы определили его тип как `Record<string, ListA>`. То есть ключ - это любая строка:
Мы не получим ошибки, хотя должны были бы. Здесь и пригождается оператор `satisfies`, который указывает TS, что мы не определяем тип переменной, но просто ожидаем, что в ключах будут строки, а в значениях что-то из списка фруктов.
В этом случае приведенный раннее код будет работать как и положено:
мы получим ошибку `Type '"Y"' is not assignable to type '"a" | "b" | "c" | "d"'`, что нам и требовалось.