Джошуа Голдберг в своём блоге задокументировал процесс добавления новой фичи в TypeScript — "TypeScript Contribution Diary: // @ts-expect-error".
Джошуа добавил поддержку новой директивы
Хорошая статья. Рекомендую почитать статью всем, кому интересно узнать больше про внутренности TypeScript.
#internals #typescript
http://blog.joshuakgoldberg.com/ts-expect-error/
Джошуа добавил поддержку новой директивы
// @ts-expect-error
в TypeScript 3.9. С её помощью можно подавить конкретные ошибки компилятора. В статье очень подробно рассказывается, как была добавлена эта фича, что было изменено, почему это было сделано именно так, с какими проблемами столкнулись пользователи после релиза RC-версии, какие были фиксы и т.п. Например, в начальной реализации для JSX не учитывался случай использования директивы игнорирования ошибок подобным образом:{/*
// @ts-ignore */}
<MissingRequiredProp />
Хорошая статья. Рекомендую почитать статью всем, кому интересно узнать больше про внутренности TypeScript.
#internals #typescript
http://blog.joshuakgoldberg.com/ts-expect-error/
Joshuakgoldberg
TypeScript Contribution Diary: // @ts-expect-error | Goldblog
Adding a new comment directive to the TypeScript compiler.
Вчера вышла новая версия TypeScript. Дениэл Розенвассер рассказал про все новинки релиза — "Announcing TypeScript 4.0".
Были добавлены вариативные типы кортежей (Variadic Tuple Types). Благодаря им возможно типизировать операции высокого порядка над кортежами и массивами, когда неизвестны типы значений.
Появилась поддержка меток для элементов кортежей (Labeled Tuple Elements):
В новой версии TypeScript появилась поддержка вывода типов для членов классов на основе анализа кода конструктора, когда включён
Добавлена поддержка составных операторов присваивания для логических операций:
В
Теперь возможно указать свою JSX-фабрику для Fragment с помощью опции
Есть ломающие изменения. Операнды для
Много изменений и улучшений в экосистеме TypeScript. Улучшена работа автоимпортов для только что установленных пакетов. Ускорена работа инкрементальной сборки. Редакторы могут использовать JSDoc
#typescript #release
https://devblogs.microsoft.com/typescript/announcing-typescript-4-0
Были добавлены вариативные типы кортежей (Variadic Tuple Types). Благодаря им возможно типизировать операции высокого порядка над кортежами и массивами, когда неизвестны типы значений.
Появилась поддержка меток для элементов кортежей (Labeled Tuple Elements):
type Range = [start: number, end: number];
. Использование меток упрощает поддержку кода, так как они делают намерение разработчика более очевидным.В новой версии TypeScript появилась поддержка вывода типов для членов классов на основе анализа кода конструктора, когда включён
noImplicitAny
.Добавлена поддержка составных операторов присваивания для логических операций:
a ||= b
, a &&= b
и a ??= b
(Short-Circuiting Assignment Operators). Благодаря этим операторам можно компактно комбинировать присваивание с коротким циклом вычислений логических операций. В
try/catch
блоке теперь можно указать тип unknown
для catch
. Это делает код безопаснее, потому что разработчик в таком случае должен явно сделать необходимые проверки перед использованием catch-значения.Теперь возможно указать свою JSX-фабрику для Fragment с помощью опции
jsxFragmentFactory
. Также можно использовать прагму /** @jsxFrag */
для указания фабрики в пределах одного файла.Есть ломающие изменения. Операнды для
delete
должны быть опциональными. Переопределние акцессоров свойствами и наоборот теперь будет приводить к ошибке. Был изменён lib.d.ts
. Наиболее заметное изменение — удаление document.origin
.Много изменений и улучшений в экосистеме TypeScript. Улучшена работа автоимпортов для только что установленных пакетов. Ускорена работа инкрементальной сборки. Редакторы могут использовать JSDoc
/** @deprecated */
для отметки устаревших API при автодополнении кода. Сайт проекта был полностью переписан.#typescript #release
https://devblogs.microsoft.com/typescript/announcing-typescript-4-0
Microsoft News
Announcing TypeScript 4.0
Today we are thrilled to announce the availability of TypeScript 4.0! This version of the language represents our next generation of TypeScript releases, as we dive deeper into expressivity, productivity, and scalability. If you’re not familiar with TypeScript…