{"id":232436,"date":"2023-01-12T18:15:00","date_gmt":"2023-01-12T15:15:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232436"},"modified":"2022-11-10T09:30:49","modified_gmt":"2022-11-10T06:30:49","slug":"5-motivi-per-cui-deno-smettera-di-usare-typescript","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/5-motivi-per-cui-deno-smettera-di-usare-typescript\/","title":{"rendered":"5 motivi per cui Deno smetter\u00e0 di usare TypeScript"},"content":{"rendered":"<p>Un documento \u00e8 emerso oggi indicando che Deno smetter\u00e0 di utilizzare TypeScript nel suo codice interno, citando diversi problemi con l&#8217;ambiente attuale. I problemi menzionati riguardano, tra gli altri, i tempi di compilazione, la strutturazione e l&#8217;organizzazione del codice di TypeScript. Andando avanti, Deno utilizzer\u00e0 JavaScript puro per il suo codice interno.<\/p>\n<h2>Deno problemi con TypeScript<\/h2>\n<p>Le situazioni sfavorevoli che il team Deno sta attualmente vivendo durante l&#8217;utilizzo di <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript<\/a> per il suo codice interno sono:<\/p>\n<ul>\n<li>\n<p>Il tempo di compilazione di TypeScript quando la modifica dei file richiede diversi minuti, rendendo la compilazione continua un processo estremamente lento<\/p>\n<\/li>\n<li>\n<p>La struttura Typescript che stanno utilizzando nei file di origine che creano l&#8217;eseguibile Deno effettivo e le API rivolte all&#8217;utente sta creando problemi di prestazioni di runtime<\/p>\n<\/li>\n<li>\n<p>TypeScript non si sta rivelando utile per organizzare il codice Deno. Al contrario, il team di Deno sta subendo l&#8217;effetto opposto. Uno dei problemi menzionati \u00e8 che si sono ritrovati con classi di Body indipendenti duplicate in due posizioni <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>Il codice interno e le dichiarazioni TypeScript di runtime devono essere mantenute sincronizzate manualmente poich\u00e9 il compilatore TypeScript non \u00e8 utile per generare i file d.ts<\/p>\n<\/li>\n<li>\n<p>Stanno mantenendo due host del compilatore TS: uno per il codice Deno interno e un altro per il codice utente esterno anche se entrambi hanno un obiettivo simile<\/p>\n<\/li>\n<\/ul>\n<h2>Rimozione di TypeScript nel codice Deno interno<\/h2>\n<p>Il team di <a href=\"https:\/\/startfunction.com\/tag\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Deno<\/a> mira a rimuovere tutti i controlli di tipo TS in fase di compilazione e il raggruppamento per il codice Deno interno. Non vedono l&#8217;ora di spostare tutto il codice di runtime in un unico file <a href=\"https:\/\/startfunction.com\/category\/javascript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript<\/a>. Tuttavia, utilizzeranno comunque un file d.ts complementare per conservare le definizioni e la documentazione del tipo.<\/p>\n<p>Vale la pena ricordare che Deno smetter\u00e0 di usare TypeScript solo per il codice Deno interno: il codice utente Deno sar\u00e0 ancora in TypeScript e quindi il tipo controllato.<\/p>\n<p>Sebbene TypeScript sia talvolta visto come una versione migliorata di JavaScript, questo caso mostra che in realt\u00e0 non lo \u00e8. Ha difetti come qualsiasi altra lingua. Uno dei pi\u00f9 importanti \u00e8 il suo lento tempo di compilazione. Mentre i piccoli progetti potrebbero non vedere un enorme picco nei tempi di compilazione quando si passa da JavaScript puro a TypeScript, sar\u00e0 evidente in progetti di grandi dimensioni come un&#8217;app <a href=\"https:\/\/startfunction.com\/tag\/react\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React complessa.<\/a> Date le grandi dimensioni del suo runtime, non sorprende che Deno smetta di usare TypeScript.<\/p>\n<p>La sicurezza del controllo del tipo durante lo sviluppo ha i suoi costi al momento della compilazione. Non \u00e8 un caso che il progetto TypeScript abbia un ampio documento su come affrontare e <a href=\"https:\/\/github.com\/microsoft\/TypeScript\/wiki\/Performance\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">migliorare i tempi di compilazione<\/a>. Uno degli approcci pi\u00f9 interessanti \u00e8 utilizzare <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/project-references.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Project References<\/a>, che consente agli sviluppatori di suddividere un grosso pezzo di codice TypeScript in pezzi pi\u00f9 piccoli.<\/p>\n<h2>Leggi di pi\u00f9 sul motivo per cui Deno smetter\u00e0 di usare TypeScript<\/h2>\n<p>La discussione completa sulla decisione di eliminare TypeScript dal codice Deno interno e utilizzare invece JavaScript pu\u00f2 essere trovata in <a href=\"https:\/\/docs.google.com\/document\/d\/1_WvwHl7BXUPmoiSeD8G83JmS8ypsTPqed4Btkqkn_-4\/preview?pru=AAABcrrKL5k*nQ4LS569NsRRAce2BVanXw#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">questo documento<\/a>, dove Ryan Dahl e collaboratori discutono del problema, della sua soluzione e di come verr\u00e0 implementato.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <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 smetter\u00e0 di usare TypeScript dopo diversi problemi come il tempo di compilazione lento.<\/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":[896,835,731,751,720,844],"tags":[1168],"class_list":["post-232436","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-guida-per-principianti","category-javascript-6","category-open-source-projektmanagement-3","category-sviluppatore","category-tutorial","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232436"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232436\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/157627"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}