Обзор TypeScript 5.5: Inferred Type Predicate
Введение
TypeScript 5.5 (бета-версия) вносит ряд значительных изменений, главным из которых является введение inferred type predicate. Давайте разберемся, что это такое и как это может упростить нашу работу с типами.
Что такое Type Predicate?
Type predicate - это функция, которая помогает TypeScript определить тип переменной в определенном контексте. Рассмотрим пример:
В этом примере `cupsInStock` все еще имеет тип `(CoffeeCup | undefined)[]`, хотя мы отфильтровали все `undefined` значения. Раньше нам приходилось явно определять функцию type predicate:
Inferred Type Predicate в TypeScript 5.5
TypeScript 5.5 вводит концепцию inferred type predicate, которая автоматически выводит type predicate для функций, удовлетворяющих определенным условиям:
1. Функция не имеет явного типа возврата или predicate annotation.
2. В функции только один явный return (без неявных return).
3. Функция не изменяет входной параметр.
4. Функция возвращает boolean, связанный с уточнением типа параметра.
Пример:
В этом случае `isNumber` будет автоматически выведен как `(x: unknown) => x is number`.
Ограничения и Особенности
1. Изменение параметра функции препятствует выведению:
2. Неоднозначные случаи:
Здесь `filter(e => !!e)` не будет работать как ожидается, потому что `0` (валидное число) также будет отфильтровано.
🔗 Полезные материалы и курсы по разработке:
Писать на сайте про бизнес статью о программировании как наглядный пример партизанского маркетинга
Тут тоже есть тема - Разработка. Почему бы и нет)
Совершенно случайно увидела здесь эту статью.
Спасибо!
Поигралась в песочнице с разными версиями. Нравится куда идет typescript.
Супер)