{"id":232224,"date":"2023-01-12T17:27:00","date_gmt":"2023-01-12T14:27:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232224"},"modified":"2022-11-10T08:10:29","modified_gmt":"2022-11-10T05:10:29","slug":"5-raisons-pour-lesquelles-deno-cessera-dutiliser-typescript","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/5-raisons-pour-lesquelles-deno-cessera-dutiliser-typescript\/","title":{"rendered":"5 raisons pour lesquelles Deno cessera d&rsquo;utiliser TypeScript"},"content":{"rendered":"<p>Un document a fait surface aujourd&rsquo;hui indiquant que Deno cessera d&rsquo;utiliser TypeScript dans son code interne, citant plusieurs probl\u00e8mes avec l&rsquo;environnement actuel. Les probl\u00e8mes mentionn\u00e9s concernent les temps de compilation TypeScript, la structuration et l&rsquo;organisation du code, entre autres. \u00c0 l&rsquo;avenir, Deno utilisera du JavaScript pur pour son code interne.<\/p>\n<h2>Deno probl\u00e8mes avec TypeScript<\/h2>\n<p>Les situations d\u00e9favorables que l&rsquo;\u00e9quipe Deno rencontre actuellement lors de l&rsquo;utilisation de <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript<\/a> pour son code interne sont\u00a0:<\/p>\n<ul>\n<li>\n<p>Le temps de compilation de TypeScript lorsque la modification des fichiers prend plusieurs minutes, ce qui rend la compilation continue un processus extr\u00eamement lent<\/p>\n<\/li>\n<li>\n<p>La structure Typescript qu&rsquo;ils utilisent dans les fichiers source qui cr\u00e9ent l&rsquo;ex\u00e9cutable Deno r\u00e9el et les API orient\u00e9es utilisateur cr\u00e9ent des probl\u00e8mes de performances d&rsquo;ex\u00e9cution<\/p>\n<\/li>\n<li>\n<p>TypeScript ne s&rsquo;av\u00e8re pas utile pour organiser le code Deno. Au contraire, l&rsquo;\u00e9quipe Deno subit l&rsquo;effet inverse. L&rsquo;un des probl\u00e8mes mentionn\u00e9s est qu&rsquo;ils se sont retrouv\u00e9s avec des classes Body ind\u00e9pendantes en double \u00e0 deux endroits <a href=\"https:\/\/github.com\/denoland\/deno\/issues\/4748\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/github.com\/denoland\/deno\/issues\/4748<\/a><\/p>\n<\/li>\n<li>\n<p>Le code interne et les d\u00e9clarations TypeScript d&rsquo;ex\u00e9cution doivent \u00eatre synchronis\u00e9s manuellement car le compilateur TypeScript n&rsquo;est pas utile pour g\u00e9n\u00e9rer les fichiers d.ts<\/p>\n<\/li>\n<li>\n<p>Ils maintiennent deux h\u00f4tes de compilateur TS\u00a0: un pour le code interne Deno et un autre pour le code utilisateur externe, m\u00eame si les deux ont un objectif similaire.<\/p>\n<\/li>\n<\/ul>\n<h2>Suppression de TypeScript dans le code Deno interne<\/h2>\n<p>L&rsquo; \u00e9quipe <a href=\"https:\/\/startfunction.com\/tag\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Deno<\/a> vise \u00e0 supprimer toutes les v\u00e9rifications et regroupements de type TS au moment de la construction pour le code Deno interne. Ils sont impatients de d\u00e9placer tout le code d&rsquo;ex\u00e9cution dans un seul fichier <a href=\"https:\/\/startfunction.com\/category\/javascript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript<\/a>. Cependant, ils utiliseront toujours un fichier d.ts compagnon pour conserver les d\u00e9finitions de type et la documentation.<\/p>\n<p>Il convient de mentionner que Deno cessera d&rsquo;utiliser TypeScript uniquement pour le code Deno interne\u00a0: le code utilisateur Deno sera toujours dans TypeScript et donc v\u00e9rifi\u00e9.<\/p>\n<p>Alors que TypeScript est parfois consid\u00e9r\u00e9 comme une version am\u00e9lior\u00e9e de JavaScript, ce cas montre qu&rsquo;en fait, ce n&rsquo;est pas le cas. Il a des d\u00e9fauts comme n&rsquo;importe quelle autre langue. L&rsquo;un des plus importants est son temps de compilation lent. Bien que les petits projets puissent ne pas voir un \u00e9norme pic de temps de compilation lors du passage de JavaScript pur \u00e0 TypeScript, cela sera perceptible dans les grands projets comme une application <a href=\"https:\/\/startfunction.com\/tag\/react\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React<\/a> complexe. Compte tenu de la grande taille de son environnement d&rsquo;ex\u00e9cution, il n&rsquo;est pas surprenant que Deno cesse d&rsquo;utiliser TypeScript.<\/p>\n<p>La s\u00e9curit\u00e9 de la v\u00e9rification des types pendant le d\u00e9veloppement a un co\u00fbt au moment de la compilation. Ce n&rsquo;est pas sans raison que le projet TypeScript dispose d&rsquo;un document complet sur la fa\u00e7on d&rsquo;aborder et d&rsquo; <a href=\"https:\/\/github.com\/microsoft\/TypeScript\/wiki\/Performance\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">am\u00e9liorer le temps de compilation<\/a>. L&rsquo;une des approches les plus int\u00e9ressantes consiste \u00e0 utiliser <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/project-references.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Project References<\/a>, qui permet aux d\u00e9veloppeurs de d\u00e9composer un gros morceau de code TypeScript en morceaux plus petits.<\/p>\n<h2>En savoir plus sur les raisons pour lesquelles Deno cessera d&rsquo;utiliser TypeScript<\/h2>\n<p>La discussion compl\u00e8te sur la d\u00e9cision de supprimer TypeScript du code interne de Deno et d&rsquo;utiliser JavaScript \u00e0 la place se trouve dans <a href=\"https:\/\/docs.google.com\/document\/d\/1_WvwHl7BXUPmoiSeD8G83JmS8ypsTPqed4Btkqkn_-4\/preview?pru=AAABcrrKL5k*nQ4LS569NsRRAce2BVanXw#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">ce document<\/a>, o\u00f9 Ryan Dahl et ses collaborateurs discutent du probl\u00e8me, de sa solution et de la mani\u00e8re dont il va \u00eatre impl\u00e9ment\u00e9.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/startfunction.com\" class=\"external external_icon\">startfunction.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Deno cessera d&rsquo;utiliser TypeScript apr\u00e8s plusieurs probl\u00e8mes tels que le temps de compilation lent.<\/p>\n","protected":false},"author":1,"featured_media":157627,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[893,717,832,728,748,841],"tags":[1167],"class_list":["post-232224","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-javascript-3","category-open-source-projektmanagement-2","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=232224"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232224\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/157627"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=232224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=232224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=232224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}