Forwarded from Wild Wild Web
🎉 Релиз TypeScript 4.4 🎉
Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂
Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:
- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.
- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.
- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.
Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
Вы можете подумать, а чего я тут фейерверки устраиваю? А потому что они таки улучшили то, с чем я уже довольно долго воюю. Надеюсь, они и дальше будут улучшать эти моменты. А какие именно, давайте обсудим в комментариях позже 🙂
Вчера команда TypeScript выпустила новую версию компилятора, в которой есть несколько интересных мест. Давайте подчеркнём самые интересные, по моему мнению:
- Улучшили Control Flow Analysis. Теперь, так называемые type guards, можно выносить в отдельные переменные и TypeScript не потеряет эту информацию по пути. Например, вы хотите проверить что что-то строка const isString = typeof someParam === 'string' и дальше вы можете писать просто if(isString) {}, TypeScript такое скушает (раньше это было ошибкой компиляции). И таких примеров побольше, можете почитать у них в посте.
- Все catch блоки по умолчанию приводятся к unknown типу (за флагом strict). Unknown тип это более безопасный вариант неизвестного типа, по сравнению с any. Я об этих типах, как раз, недавно писал. С этим релизом, TypeScript будет ошибки в catch блоках неявно приводить к unknown. И вам, собственно, нужно будет проверить что ошибка это та ошибка, которую вы ожидаете или нет.
- С этим релизом добавилась возможность иметь "inlay hints". Я с таким часто встречаюсь при разработке на Rust и, если честно, меня это немного бесит. Но, знаю людей, которым это очень даже заходит. Речь идёт о том, что в IDE у вас будут добавляться имена параметров к вашим аргументам или выведенный тип возврата функции будет добавлен как "inlay hint" возле вашей функции и так далее. Насколько я знаю, такое есть давно в Intelliji и им активно пользуются. А в этом релизе они добавили это на уровне компилятора.
Все остальные моменты, по моему мнению, не такие уж и большие, но, безусловно, интересные и для кого-то могут оказаться нововведением "вовремя". Вы можете почитать более подробно об изменениях в этой версии в их блог посте.
Microsoft News
Announcing TypeScript 4.4
Today we’re excited to announce the availability of TypeScript 4.4! If you haven’t heard of TypeScript yet, it’s a language that builds on JavaScript by adding syntax for static types. Tools like the TypeScript compiler just erase those types, leaving you…
👍1
React Native 0.65 и Hermes 0.8.1
17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
17 августа вышел React Native 0.65, в котором JavaScript движок Hermes обновлён до версии 0.8.1. Новая версия движка поддерживаем процессоры Apple M1, добавляет улучшенную компрессию SMI и новый конкурентный сборщик мусора Hades, а также добавляет поддержку ECMAScript Internationalization API прямо в движок, что позволяет избавиться от локальных полифиллов.
reactnative.dev
Announcing React Native 0.65 · React Native
Today we’re releasing React Native version 0.65 with a new version of Hermes, improvements to accessibility, package upgrades, and more.
Новое в Chrome 94 Beta
Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)
Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
Главные изменения:
- WebCodecs
- WebGPU (под origin trail), о котором также появилась статья на web.dev; планируется, что в Chrome 97 (релиз намечен на 4 января 2022) новый API будет включен по умолчанию
- scheduler.postTask() — метод для управления приоритезацией (с режимами user-blocking, user-visible и background)
Остальные изменения можно посмотреть вот тут. Релиз ожидается 21 сентября.
Chromium Blog
Chrome 94 Beta: WebCodecs, WebGPU, Scheduling, and More
Unless otherwise noted, changes described below apply to the newest Chrome beta channel release for Android, Chrome OS, Linux, macOS, and Wi...
⚡️ Class static initiallization blocks тоже отправляется на stage 4!
Есть ли у Ваших проектов поддержка браузера Internet Explorer?
Anonymous Poll
3%
Да, поддерживаем Internet Explorer 11 и более старые версии
19%
Да, поддерживаем Internet Explorer 11
79%
Нет, поддержки IE на проектах нет
Safari Technology Preview 131 (1 сентября)
Релиз включает улучшения Web Inspector, минорные исправления и улучшения CSS, начальную поддержку для COEP/COOP (добавление которых должно помочь в будущем включить поддержку SharedArrayBuffer и потоков в #WebAssembly!), исправления различных Web API, ускорение и улучшения обработки строки и регулярок, улучшения WebRTC, исправления медиа.
https://webkit.org/blog/11962/release-notes-for-safari-technology-preview-131/
Релиз включает улучшения Web Inspector, минорные исправления и улучшения CSS, начальную поддержку для COEP/COOP (добавление которых должно помочь в будущем включить поддержку SharedArrayBuffer и потоков в #WebAssembly!), исправления различных Web API, ускорение и улучшения обработки строки и регулярок, улучшения WebRTC, исправления медиа.
https://webkit.org/blog/11962/release-notes-for-safari-technology-preview-131/
WebKit
Release Notes for Safari Technology Preview 131
Safari Technology Preview Release 131 is now available for download for macOS Big Sur and betas of macOS Monterey.
Samsung Internet 16.0 Beta (1 сентября)
В этой версии улучшен UX поиска и добавлены новые возможности сохранения приватности пользователей. Новая версия основывается на Chromium 92, а это также означает, что добавилась поддержка
https://medium.com/samsung-internet-dev/introducing-the-samsung-internet-16-0-beta-9ec45f1412c2
В этой версии улучшен UX поиска и добавлены новые возможности сохранения приватности пользователей. Новая версия основывается на Chromium 92, а это также означает, что добавилась поддержка
position: sticky.https://medium.com/samsung-internet-dev/introducing-the-samsung-internet-16-0-beta-9ec45f1412c2
Medium
Introducing the Samsung Internet 16.0 Beta
Enhanced search experience and tracking protection top the bill of new features for our latest version, rolling out now on our Beta…
Chrome 93 (31 августа)
- 27 исправлений безопасности
- теперь можно подтвердить OTP-код на десктопе с устройства на Android
- обработка URL в PWA
- поддержка работы с несколькими экранами и окнами (под флагом)
Также:
- изменения для разработчиков
- 27 исправлений безопасности
- теперь можно подтвердить OTP-код на десктопе с устройства на Android
- обработка URL в PWA
- поддержка работы с несколькими экранами и окнами (под флагом)
Также:
- изменения для разработчиков
Firefox 92 (7 сентября)
https://hacks.mozilla.org/2021/09/time-for-a-review-of-firefox-92/
- WebRender активирован на всех платформах
- Реализована поддержка корректного воспроизведения видео в Full RGB
- Автоматическое улучшение до HTTPS через заголовок Alt-Svc
- различные улучшения CSS
- Поддержка Object.hasOwn (ES2022)
- Поддержка Imperative Slotting API
Также:
- Исправления уязвимостей
- Изменения для разработчиков
- Изменения для конечных пользователей
https://hacks.mozilla.org/2021/09/time-for-a-review-of-firefox-92/
- WebRender активирован на всех платформах
- Реализована поддержка корректного воспроизведения видео в Full RGB
- Автоматическое улучшение до HTTPS через заголовок Alt-Svc
- различные улучшения CSS
- Поддержка Object.hasOwn (ES2022)
- Поддержка Imperative Slotting API
Также:
- Исправления уязвимостей
- Изменения для разработчиков
- Изменения для конечных пользователей
Mozilla Hacks – the Web developer blog
Time for a review of Firefox 92
Release time comes around so quick! This month we have a few CSS updates, along with the new Object.hasOwn() static method for JavaScript.
Обновления спецификаций W3C
Черновик Secure Payment Confirmation опубликован в статусе First Working Public Draft.
В статусе First Working Public Draft опубликованы спецификации WebXR (виртуальная и дополненная реальности в Web):
- WebXR Depth Sensing Module
- WebXR Hit Test Module
- WebXR DOM Overlays Module
- WebXR Lighting Estimation API Level 1
Кроме того, опубликован документ XR Accessibility User Requirements (XAUR), описывающий требования к WebXR по доступности.
CSS Nesting Module также опубликован в статусе First Working Public Draft. Роман Дворнов писал подробнее о том, что это скоро должно произойти вот тут.
И еще один First Public Working Draft — Incremental Font Transfer. Спецификация описывает способ итерационной подгрузки шрифтов, при которой клиент может сначала получить необходимые для отображения части файлов со шрифтами.
Черновик Secure Payment Confirmation опубликован в статусе First Working Public Draft.
В статусе First Working Public Draft опубликованы спецификации WebXR (виртуальная и дополненная реальности в Web):
- WebXR Depth Sensing Module
- WebXR Hit Test Module
- WebXR DOM Overlays Module
- WebXR Lighting Estimation API Level 1
Кроме того, опубликован документ XR Accessibility User Requirements (XAUR), описывающий требования к WebXR по доступности.
CSS Nesting Module также опубликован в статусе First Working Public Draft. Роман Дворнов писал подробнее о том, что это скоро должно произойти вот тут.
И еще один First Public Working Draft — Incremental Font Transfer. Спецификация описывает способ итерационной подгрузки шрифтов, при которой клиент может сначала получить необходимые для отображения части файлов со шрифтами.