{"id":388,"date":"2023-05-04T14:30:03","date_gmt":"2023-05-04T14:30:03","guid":{"rendered":"https:\/\/poyesis.fr\/blogs\/?p=388"},"modified":"2025-02-03T08:08:42","modified_gmt":"2025-02-03T08:08:42","slug":"typescript-5-0-quelles-sont-ses-nouveautes","status":"publish","type":"post","link":"https:\/\/poyesis.fr\/blogs\/typescript-5-0-quelles-sont-ses-nouveautes\/","title":{"rendered":"TypeScript 5.0 : quelles sont ses nouveaut\u00e9s ?"},"content":{"rendered":"<p>Le 16 mars, Microsoft a ravi les programmeurs et les aficionados des technologies web en annon\u00e7ant la sortie officielle de TypeScript 5.0.<\/p>\n<p>Depuis la version b\u00eata du langage de programmation open-source sign\u00e9e Microsoft, les dev web attendaient une version stable avec impatience.<\/p>\n<p>Ainsi, cette nouvelle version vous offre une r\u00e9duction du temps de construction des modules de 10 \u00e0 15 %. De plus, les packages sont 26 % moins volumineux que ceux de la version pr\u00e9c\u00e9dente.<\/p>\n<p>Mais limiter cette nouvelle version \u00e0 une simple optimisation serait une erreur. Deux nouvelles fonctionnalit\u00e9s ont su s\u00e9duire les d\u00e9veloppeurs\u00a0: l\u2019impl\u00e9mentation des d\u00e9corateurs et le typage des param\u00e8tres via \u201ctype const\u201d.<\/p>\n<p>Voyons-les en d\u00e9tail.<\/p>\n<h2>Les d\u00e9corateurs<\/h2>\n<p>Cher Lecteur,<\/p>\n<p>En tant que d\u00e9veloppeur web, vous est-il d\u00e9j\u00e0 arriv\u00e9 de vouloir modifier le comportement d\u2019une fonction d\u2019une de vos biblioth\u00e8ques ? Si oui, alors vous avez d\u00fb r\u00e9\u00e9crire une partie de votre code-source.<\/p>\n<p>Le style de programmation orient\u00e9 objet et les interfaces facilitent r\u00e9duisent consid\u00e9rablement le nombre de lignes de codes \u00e0 retoucher. Mais soyons honn\u00eates\u00a0: d\u00e9velopper un code en modifiant constamment ces fonctions peut vite le rendre incompr\u00e9hensible.<\/p>\n<p>Et c\u2019est l\u00e0 qu&rsquo;entre en jeu la nouvelle fonctionnalit\u00e9 du langage informatique TypeScript\u00a0: les d\u00e9corateurs.<\/p>\n<p>En utilisant une technique de programmation logicielle bas\u00e9e sur les d\u00e9corateurs, vous ne toucherez absolument pas aux lignes de codes de votre fonction.<\/p>\n<p>\u00c0 la place, vous en cr\u00e9erez une nouvelle fonction qui va \u00ab\u00a0d\u00e9corer\u00a0\u00bb la fonction que vous ciblez.<\/p>\n<p>Regardez plut\u00f4t l\u2019exemple officiel fourni par Microsoft.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-385\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2023\/03\/code-typescript-1.jpg\" alt=\"\" width=\"759\" height=\"321\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-1.jpg 759w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-1-300x127.jpg 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-1-750x317.jpg 750w\" sizes=\"(max-width: 759px) 100vw, 759px\" \/><\/p>\n<p>D\u00e9velopper une application en entrem\u00ealant les instructions d\u2019ex\u00e9cution et celles de d\u00e9bogage comme ci-dessus est rarement une bonne id\u00e9e. En le faisant, vous rendez vos scripts et librairies difficiles \u00e0 maintenir pour les autres d\u00e9veloppeurs web.<\/p>\n<p>Pour \u00e9viter cela, vous pouvez utiliser les d\u00e9corateurs.<\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-386\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2023\/03\/code-typescript-2.jpg\" alt=\"\" width=\"768\" height=\"261\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-2.jpg 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-2-300x102.jpg 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-2-750x255.jpg 750w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-full wp-image-387\" src=\"https:\/\/poyesis.fr\/blogs\/wp-content\/uploads\/2023\/03\/code-typescript-3.jpg\" alt=\"\" width=\"775\" height=\"440\" srcset=\"https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-3.jpg 775w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-3-300x170.jpg 300w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-3-768x436.jpg 768w, https:\/\/poyesis.fr\/wp-content\/uploads\/2023\/03\/code-typescript-3-750x426.jpg 750w\" sizes=\"(max-width: 775px) 100vw, 775px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Ne trouvez-vous pas que le d\u00e9corateur <em>loggedMethod<\/em> am\u00e9liore grandement la lisibilit\u00e9 et la syntaxe du code ?<\/p>\n<p>Face \u00e0 une biblioth\u00e8que constitu\u00e9e de plusieurs milliers de lignes de code, les d\u00e9corateurs peuvent faire toute la diff\u00e9rence.<\/p>\n<p>Si les d\u00e9corateurs vous int\u00e9ressent, ce <a href=\"https:\/\/deusyss.developpez.com\/tutoriels\/Programmation\/Concepts_avances_decorateurs\/\" target=\"_blank\" rel=\"noopener\">billet de blog d\u00e9di\u00e9 au d\u00e9veloppement d\u2019application en langage python<\/a> est fait pour vous. Les langages de programmation sont diff\u00e9rents, mais le principe est identique.<\/p>\n<h2>Le typage de param\u00e8tre constant<\/h2>\n<p>M\u00eame si TypeScript s\u2019appuie sur du code JavaScript, il fait partie des langages de programmation \u00e0 typage statique. Exactement comme le langage Java et le Swift.<\/p>\n<p>Ce n\u2019est que lorsqu\u2019il est pass\u00e9 \u00e0 l\u2019interpr\u00e8te de votre navigateur internet qu\u2019il assigne un type g\u00e9n\u00e9ral aux param\u00e8tres. On parle alors de compilation, ou transcompilation.<\/p>\n<p>Mais parfois, vous aurez besoin que votre application web prenne un type de donn\u00e9es sp\u00e9cifique en entr\u00e9e. Comment en \u00eatre certain\u00a0?<\/p>\n<p>Et c\u2019est l\u00e0 qu\u2019entre en jeu l\u2019autre fonctionnalit\u00e9 phare de cette nouvelle version\u00a0: le modificateur \u201cconst\u201d.<\/p>\n<p>Pour programmer votre fonction \u00e0 ne recevoir qu\u2019un seul type de donn\u00e9es, ajoutez ce modificateur \u00e0 la d\u00e9claration de param\u00e8tre de type. Vous indiquez ainsi au compilateur que l\u2019unique type accept\u00e9 est celui que vous avez d\u00e9fini lors du codage.<\/p>\n<p>En sp\u00e9cifiant les types attendus, vous vous \u00e9pargnez plusieurs heures de d\u00e9bogage. C\u00f4t\u00e9 client, vous limiterez la frustration caus\u00e9e par une exp\u00e9rience-utilisateur en r\u00e9duisant les bugs.<\/p>\n<h2>Les autres fonctionnalit\u00e9s de TypeScript 5.0<\/h2>\n<p>TypeScript apporte aussi d\u2019autres surprises pour les d\u00e9veloppeurs web et les utilisateurs de frameworks bas\u00e9s sur ce dernier. Notamment\u00a0:<\/p>\n<ul>\n<li aria-level=\"1\">une nouvelle balise JSDOC \u00ab\u00a0@Satisfies\u00a0\u00bb, qui vous permet de d\u00e9tecter les incompatibilit\u00e9s de type afin d\u2019utiliser plus pr\u00e9cis\u00e9ment les valeurs dans votre code\u00a0;<\/li>\n<li aria-level=\"1\">la prise en charge des formes d\u2019exports de module \u201c export * from \u00ab\u00a0module\u201d et \u201cexport * as ns from \u00ab\u00a0module\u201d ;<\/li>\n<li aria-level=\"1\">la possibilit\u00e9 de surcharger les fonctions avec le param\u00e8tre JSDOC @overload.<\/li>\n<\/ul>\n<p>Si vous souhaitez en savoir plus, rendez-vous sur <a href=\"https:\/\/devblogs.microsoft.com\/typescript\/announcing-typescript-5-0-beta\/#support-for-export-type\" target=\"_blank\" rel=\"noopener\">le billet de blog officiel de Microsoft consacr\u00e9 \u00e0 TypeScript 5.0<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le 16 mars, Microsoft a ravi les programmeurs et les aficionados des technologies web en annon\u00e7ant la sortie officielle de TypeScript 5.0. Depuis la version b\u00eata du langage de programmation open-source sign\u00e9e Microsoft, les dev web attendaient une version stable avec impatience. Ainsi, cette nouvelle version vous offre une r\u00e9duction du temps de construction des [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":384,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jnews-multi-image_gallery":[],"jnews_single_post":{"format":"standard","override":[{"template":"7","single_blog_custom":"553","parallax":"1","fullscreen":"1","layout":"no-sidebar-narrow","sidebar":"default-sidebar","second_sidebar":"default-sidebar","sticky_sidebar":"1","share_position":"floatbottom","share_float_style":"share-normal","show_share_counter":"1","show_view_counter":"1","show_featured":"1","show_post_meta":"1","show_post_author":"1","show_post_author_image":"1","show_post_date":"1","post_date_format":"default","post_date_format_custom":"Y\/m\/d","show_post_category":"1","post_reading_time_wpm":"300","post_calculate_word_method":"str_word_count","show_zoom_button":"0","zoom_button_out_step":"2","zoom_button_in_step":"3","number_popup_post":"1","show_post_related":"1"}],"image_override":[{"single_post_thumbnail_size":"crop-500","single_post_gallery_size":"crop-500"}],"trending_post_position":"meta","trending_post_label":"Trending","sponsored_post_label":"Sponsored by","disable_ad":"0","subtitle":""},"jnews_primary_category":[],"jnews_override_bookmark_settings":{"override_bookmark_button":"0","override_show_bookmark_button":"0"},"jnews_override_counter":{"view_counter_number":"0","share_counter_number":"0","like_counter_number":"0","dislike_counter_number":"0"},"footnotes":""},"categories":[113],"tags":[41,81,114,115],"class_list":["post-388","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-actualite","tag-developpement-sur-mesure","tag-developpement-web","tag-microsoft","tag-typescript-5-0"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/comments?post=388"}],"version-history":[{"count":1,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/388\/revisions"}],"predecessor-version":[{"id":1212,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/posts\/388\/revisions\/1212"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/media\/384"}],"wp:attachment":[{"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/media?parent=388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/categories?post=388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/poyesis.fr\/blogs\/wp-json\/wp\/v2\/tags?post=388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}