15 подписчиков
TypeScript — satisfy или as
Я думаю все знают о ключевом слове `as` в TypeScript. Мы используем его, когда нужно явно указать тип выражения, будь то переменная или функция. Когда мы используем `as`, происходит изменение типа выражения.
В TypeScript 4.9 появился оператор satisfies, который похож на оператор as, но работает немного иначе.
ℹ️ Он также проверяет, что выражение соответствует типу, но не изменяет его (тип).
Разницу легко увидеть на картинке.
При использовании as изменяется тип на Color, и мы теряем информацию об исходном типе объекта. Поэтому у нас появляется ошибка в месте вызова myColor.value.toUpperCase() , потому что компилятор думает, что value может быть также типа RGB, у которого нет метода toUpperCase .
При использовании satisfies ошибки нет, потому что исходная информация о типе сохранена.
Ещё по теме:
#typescript
Около минуты
5 марта 2024