{"id":231950,"date":"2023-01-12T17:57:00","date_gmt":"2023-01-12T14:57:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=231950"},"modified":"2022-11-10T05:51:26","modified_gmt":"2022-11-10T02:51:26","slug":"5-razones-por-las-que-deno-dejara-de-usar-typescript","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/es\/5-razones-por-las-que-deno-dejara-de-usar-typescript\/","title":{"rendered":"5 razones por las que Deno dejar\u00e1 de usar TypeScript"},"content":{"rendered":"<p>Hoy apareci\u00f3 un documento que se\u00f1ala que Deno dejar\u00e1 de usar TypeScript en su c\u00f3digo interno, citando varios problemas con el entorno actual. Los problemas mencionados involucran tiempos de compilaci\u00f3n de TypeScript, estructuraci\u00f3n y organizaci\u00f3n del c\u00f3digo, entre otros. En el futuro, Deno utilizar\u00e1 JavaScript puro para su c\u00f3digo interno.<\/p>\n<h2>Deno problemas con TypeScript<\/h2>\n<p>Las situaciones desfavorables que el equipo de Deno est\u00e1 experimentando actualmente al usar <a href=\"https:\/\/startfunction.com\/tag\/typescript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">TypeScript<\/a> para su c\u00f3digo interno son:<\/p>\n<ul>\n<li>\n<p>El tiempo de compilaci\u00f3n de TypeScript cuando se cambian archivos lleva varios minutos, lo que hace que la compilaci\u00f3n continua sea un proceso terriblemente lento<\/p>\n<\/li>\n<li>\n<p>La estructura de mecanografiado que est\u00e1n usando en los archivos fuente que crean el ejecutable real de Deno y las API orientadas al usuario est\u00e1 creando problemas de rendimiento en tiempo de ejecuci\u00f3n.<\/p>\n<\/li>\n<li>\n<p>TypeScript no est\u00e1 demostrando ser \u00fatil para organizar el c\u00f3digo de Deno. Por el contrario, el equipo de Deno est\u00e1 experimentando el efecto contrario. Uno de los problemas mencionados es que terminaron con clases de cuerpo independientes duplicadas en dos ubicaciones <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>El c\u00f3digo interno y las declaraciones de TypeScript en tiempo de ejecuci\u00f3n deben sincronizarse manualmente, ya que el compilador de TypeScript no es \u00fatil para generar los archivos d.ts.<\/p>\n<\/li>\n<li>\n<p>Mantienen dos hosts compiladores de TS: uno para el c\u00f3digo interno de Deno y otro para el c\u00f3digo de usuario externo, aunque ambos tienen un objetivo similar.<\/p>\n<\/li>\n<\/ul>\n<h2>Eliminaci\u00f3n de TypeScript en el c\u00f3digo interno de Deno<\/h2>\n<p>El equipo de <a href=\"https:\/\/startfunction.com\/tag\/deno\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Deno<\/a> tiene como objetivo eliminar todas las verificaciones de tipo TS en tiempo de compilaci\u00f3n y la agrupaci\u00f3n para el c\u00f3digo interno de Deno. Esperan mover todo el c\u00f3digo de tiempo de ejecuci\u00f3n a un solo archivo <a href=\"https:\/\/startfunction.com\/category\/javascript\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript .<\/a> Sin embargo, seguir\u00e1n usando un archivo d.ts complementario para conservar las definiciones de tipo y la documentaci\u00f3n.<\/p>\n<p>Vale la pena mencionar que Deno dejar\u00e1 de usar TypeScript solo para el c\u00f3digo interno de Deno: el c\u00f3digo de usuario de Deno seguir\u00e1 estando en TypeScript y, por lo tanto, se verificar\u00e1.<\/p>\n<p>Si bien TypeScript a veces se ve como una versi\u00f3n mejorada de JavaScript, este caso muestra que, de hecho, no lo es. Tiene defectos como cualquier otro idioma. Uno de los m\u00e1s importantes es su lento tiempo de compilaci\u00f3n. Si bien es posible que los proyectos peque\u00f1os no experimenten un gran aumento en el tiempo de compilaci\u00f3n al cambiar de JavaScript puro a TypeScript, se notar\u00e1 en proyectos grandes como una aplicaci\u00f3n <a href=\"https:\/\/startfunction.com\/tag\/react\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">React<\/a> compleja. Dado el gran tama\u00f1o de su tiempo de ejecuci\u00f3n, no sorprende que Deno deje de usar TypeScript.<\/p>\n<p>La seguridad de la verificaci\u00f3n de tipos durante el desarrollo tiene su costo en el momento de la compilaci\u00f3n. No en vano, el proyecto TypeScript tiene un extenso documento sobre c\u00f3mo abordar y <a href=\"https:\/\/github.com\/microsoft\/TypeScript\/wiki\/Performance\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">mejorar el tiempo de compilaci\u00f3n<\/a>. Uno de los enfoques m\u00e1s interesantes es usar <a href=\"https:\/\/www.typescriptlang.org\/docs\/handbook\/project-references.html\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Project References<\/a>, que permite a los desarrolladores dividir una gran pieza de c\u00f3digo de TypeScript en piezas m\u00e1s peque\u00f1as.<\/p>\n<h2>Lea m\u00e1s sobre por qu\u00e9 Deno dejar\u00e1 de usar TypeScript<\/h2>\n<p>La discusi\u00f3n completa sobre la decisi\u00f3n de eliminar TypeScript del c\u00f3digo interno de Deno y usar JavaScript en su lugar se puede encontrar en <a href=\"https:\/\/docs.google.com\/document\/d\/1_WvwHl7BXUPmoiSeD8G83JmS8ypsTPqed4Btkqkn_-4\/preview?pru=AAABcrrKL5k*nQ4LS569NsRRAce2BVanXw#\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este documento<\/a>, donde Ryan Dahl y sus colaboradores analizan el problema, su soluci\u00f3n y c\u00f3mo se implementar\u00e1.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <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 dejar\u00e1 de usar TypeScript despu\u00e9s de varios problemas, como un tiempo de compilaci\u00f3n 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":[892,716,747,831,727,840],"tags":[1172],"class_list":["post-231950","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codigo","category-desarrollador","category-fuente-abierta","category-guia-para-principiantes","category-javascript-2","category-tutoriales","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/comments?post=231950"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/posts\/231950\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media\/157627"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/media?parent=231950"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/categories?post=231950"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/es\/wp-json\/wp\/v2\/tags?post=231950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}