DevGang
Авторизоваться

Что нового в Angular 16.1?

Это небольшой выпуск с некоторыми приятными функциями: давайте погрузимся!

Поддержка TypeScript 5.1

Angular v16.1 теперь поддерживает TypeScript 5.1. Это означает, что вы можете использовать последнюю версию TypeScript в своих приложениях Angular. Вы можете ознакомиться с примечаниями к выпуску TypeScript 5.1, чтобы узнать больше о новых функциях.

Преобразование входных значений

Angular v16.1 вводит новую опцию transform в декораторе @Input. Это позволяет преобразовать значение, передаваемое на вход, до того, как оно будет присвоено свойству. Параметр transform использует функцию, которая принимает значение в качестве входных данных и возвращает преобразованное значение. Поскольку наиболее распространенными вариантами использования являются преобразование строки в число или логическое значение, Angular предоставляет для этого две встроенные функции: numberAttribute и booleanAttribute в @angular/core.

Вот пример использования booleanAttribute:

@Input({ transform: booleanAttribute }) disabled = false;

Это преобразует значение, переданное на вход, в логическое значение, чтобы работал следующий код:

<my-component disabled></my-component>
<my-component disabled="true"></my-component>
<!-- Before, only the following was properly working -->
<my-component [disabled]="true"></my-component>

Функция numberAttribute работает так же, но преобразует значение в число.

@Input({ transform: numberAttribute }) value = 0;

Это также позволяет определить резервное значение на случай, если вводимое значение не является правильным числом (по умолчанию - NaN):

@Input({ transform: (value: unknown) => numberAttribute(value, 42) }) value = 0;

Затем это можно использовать следующим образом:

<my-component value="42"></my-component>
<my-component value="not a number"></my-component>
<!-- Before, only the following was properly working -->
<my-component [value]="42"></my-component>

Бэкенд выборки для HTTP-клиента Angular

HTTP-клиент имеет новую внутреннюю реализацию на основе Fetch API.

Это экспериментальная и необязательная функция, которую вы можете включить с помощью:

provideHttpClient(withFetch());

Он не поддерживает отчеты о ходе загрузки и, конечно же, требует браузера, поддерживающего Fetch API. Fetch API также является экспериментальным на Node, но доступен без флагов начиная с Node 18.

Это в основном интересно для рендеринга на стороне сервера, поскольку реализация XHR изначально не поддерживается в Node и требует polyfill (что имеет некоторые проблемы).

Angular CLI

В CLI теперь есть параметр --force-esbuild, который позволяет принудительно использовать esbuild для ng serve. Это позволяет попробовать реализацию esbuild, не переключая сборщик в angular.json (и сохраняя реализацию Webpack для команды ng build).

Конструктор esbuild был улучшен. Теперь он предварительно связывает зависимости с помощью базового механизма Vite, использует некоторый постоянный кеш для компиляции TypeScript и предварительного связывания Vite и показывает предполагаемые размеры передачи созданных ресурсов, как это делает сборщик Webpack.

Источник:

#Angular
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу