Языки программирования

TypeScript улучшает проверку никогда не инициализированных переменных

TypeScript улучшает проверку никогда не инициализированных переменных

Компания Microsoft объявила о выходе бета-версии TypeScript 5.7, в которую внесены такие улучшения, как усиленная проверка переменных, которые никогда не были инициализированы перед использованием, и переписывание путей для относительных путей.

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

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

Второе улучшение - это изменение для работы с инструментами, которые поддерживают выполнение TypeScript-кода «на месте», то есть не требуют шага сборки для создания выходных JavaScript-файлов. В сообщении блога, объясняющем это улучшение, упоминаются ts-node, tsx, Deno, Bun и Node.js. Проблема может возникнуть, если разработчики захотят сгенерировать .js файлы из .ts файлов, созданных подобным образом, потому что путь импорта является относительным, но путь вывода должен быть абсолютным, а до сих пор TypeScript избегал переписывания путей. Теперь есть новая опция компилятора, которая переписывает путь, чтобы он был абсолютным.

Другие улучшения включают поддержку --target es2024, которая позволяет пользователям нацеливаться на исполняемые среды ECMAScript 2024; более быструю проверку владения проектом в редакторах для составных проектов; и проверку JSON.

Читайте также