TypeScript 2.0 добавляет Null, Undefined и Never


TypeScript 2.0 был выпущен с поддержкой новых типов данных, включая Null и Undefined.

TypeScript — это типизированный надмножество JavaScript, которое компилируется в простой JavaScript. Он был разработан Microsoft для создания сложных приложений и является встроенным языком программирования для Visual Studio.

TypeScript 2.0 добавляет несколько новых функций, помогающих разработчикам работать более эффективно, больше соответствует эволюции ECMAScript и имеет лучшую поддержку библиотек и инструментов JavaScript.

Одним из изменений в новой версии является поддержка двух специальных типов, Null и Undefined, которые (как ни странно) имеют значения null и undefined соответственно. До сих пор вы не могли явно назвать эти типы, поскольку средство проверки типов считало, что null и undefined присваиваются чему-либо. Поскольку null и undefined были по существу допустимыми значениями каждого типа, вы не могли специально исключить их или обнаружить их ошибочное использование.

Новый режим строгой нулевой проверки удаляет нулевые и неопределенные значения из домена каждого типа и позволяет назначать их только себе и любому.

Поддержка типов также была увеличена за счет реализации анализа типов на основе потока управления для локальных переменных и параметров. В более ранних версиях анализ типов ограничивался операторами If. В новой версии средство проверки типов анализирует все возможные потоки управления в операторах и выражениях, чтобы создать наиболее конкретный возможный тип (суженный тип) в любом заданном месте для локальной переменной или параметра, который объявлен как имеющий тип объединения.

В эту версию также был добавлен новый примитивный тип — тип never. Как говорится в примечаниях к выпуску:

«Это представляет собой тип значений, которые никогда не возникают. В частности, никогда не является типом возвращаемого значения для функций, которые никогда не возвращаются, и никогда не является типом переменных с защитой типа, которые никогда не являются истинными».

Поскольку никогда не является подтипом каждого типа, он всегда опускается в типах объединения и игнорируется при выводе типа возвращаемого значения функции до тех пор, пока возвращаются другие типы.

С другой стороны, в tsconfig.json добавлена поддержка Glob. По словам разработчиков, это одна из наиболее востребованных функций, частично из-за того, что ряд сторонних инструментов теперь поддерживает tsconfig.json, большинство из которых поддерживают какое-то расширение tsconfig.json, которое поддерживает глобальные файлы. внутри самого TypeScript упорядочивает ситуацию.


Добавить комментарий