TypeScript 2.7 улучшает вывод типов


Есть новая версия TypeScript, в которой есть улучшения, включая более простую совместимость модулей ECMAScript, поддержку кортежей фиксированной длины и более умный вывод литералов объектов.

TypeScript был разработан Microsoft и представляет собой расширенный набор JavaScript, основанный на стандарте ECMAScript и включающий поддержку статических типов. Затем ваш код TypeScript преобразуется в чистый, работоспособный JavaScript.

Улучшения в новой версии начинаются с более строгих проверок свойств класса с помощью нового флага строгости, который гарантирует, что каждое свойство экземпляра класса устанавливается в теле конструктора или инициализатором свойства. В своем сообщении об изменении в блоге MSDN Дэниел Розенвассер, программный менеджер TypeScript, говорит, что:

«В некотором смысле он обеспечивает некоторые проверки определенного присваивания от переменных к свойствам экземпляра в классах».

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

Следующее интересное изменение — это улучшение взаимодействия модулей ECMAScript. История форматов модулей в экосистеме JavaScript означает, что существует несколько «устаревших» форматов модулей, таких как те, которые использовались Babel, Webpack и React Native до того, как модули ECMAScript были стандартизированы в ES2015. В новой версии есть новая опция компилятора, которая более разумно обрабатывает форматы модулей, отличных от TypeScript.

Другие улучшения включают более чистый вывод в режиме —watch; улучшенное форматирование сообщений об ошибках при использовании флага —pretty; поддержка кортежей фиксированной длины; и более умный буквальный вывод объекта.


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