Angular v17.3 introduit une API améliorée pour déclarer des sorties, disponible en tant que version préliminaire pour les développeurs. La nouvelle API simplifie le processus de déclaration des sorties dans les directives et s'aligne sur d'autres API basées sur des fonctions comme les entrées de signal. Elle fournit également des types plus précis pour émettre des valeurs, améliorant ainsi la sécurité des types et réduisant le risque d'erreurs de runtime subtiles.
Les développeurs peuvent déclarer des sorties en utilisant la fonction output(), qui initialise un champ de classe et permet d'émettre des valeurs en invoquant la fonction .emit. Pour les sorties basées sur des flux observables, la fonction outputFromObservable() peut être utilisée.
La nouvelle API n'est pas un signal mais une amélioration ergonomique qui réduit le code boilerplate. Elle présente une suppression automatique des sorties lors de la destruction de la directive et une sécurité des types améliorée pour les valeurs émises.
Toutes les sorties implémentent l'interface OutputRef, fournissant une manière cohérente pour les développeurs d'écouter les sorties de manière programmatique. Le package d'interopérabilité RxJS inclut la fonction outputToObservable pour écouter les sorties de manière idiomatique RxJS.
La nouvelle API de sortie est disponible en version préliminaire pour les développeurs et Angular encourage les commentaires de la communauté. Les développeurs peuvent essayer les nouvelles API en installant la dernière version d'Angular avec ng update.
L'API de sortie améliorée dans Angular v17.3 offre plusieurs avantages, notamment une alignement conceptuel avec d'autres API basées sur des fonctions, une syntaxe simplifiée, une suppression automatique, une sécurité des types améliorée et une écoute programmatique cohérente.
Les développeurs sont encouragés à fournir des commentaires sur les nouvelles API de sortie via des commentaires, des discussions GitHub ou d'autres canaux. Les commentaires seront utilisés pour affiner et stabiliser davantage les API.
blog.angular.dev
Meet Angular’s new output() API
Create attached notes ...
