{"id":16641,"date":"2025-01-15T01:32:18","date_gmt":"2025-01-14T22:02:18","guid":{"rendered":"https:\/\/www.itpiran.net\/blog\/?p=16641"},"modified":"2025-01-15T01:32:18","modified_gmt":"2025-01-14T22:02:18","slug":"what-is-typescript-and-why-should-you-use-it","status":"publish","type":"post","link":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/what-is-typescript-and-why-should-you-use-it\/","title":{"rendered":"\u00bfQu\u00e9 es TypeScript y por qu\u00e9 deber\u00edas usarlo?"},"content":{"rendered":"<h2 id=\"%d9%85%d9%82%d8%af%d9%85%d9%87\">Introducci\u00f3n<\/h2>\n<p>El lenguaje de programaci\u00f3n TypeScript ofrece muchas ventajas sobre JavaScript para los desarrolladores. TypeScript proporciona capacidades adicionales que permiten crear aplicaciones y sitios web interactivos m\u00e1s complejos con menos errores.<\/p>\n<p>TypeScript tambi\u00e9n tiene un amplio ecosistema de herramientas para desarrolladores que ofrecen documentaci\u00f3n en l\u00ednea y revisi\u00f3n de c\u00f3digo en vivo, lo que facilita la detecci\u00f3n de errores de codificaci\u00f3n mientras trabajas.<\/p>\n<p>Este art\u00edculo explica qu\u00e9 es TypeScript y c\u00f3mo se relaciona con JavaScript, y proporciona recursos para ayudarlo a comenzar a crear aplicaciones frontend y backend.<\/p>\n<h2 id=\"typescript-%da%86%db%8c%d8%b3%d8%aa%d8%9f\">\u00bfQu\u00e9 es TypeScript?<\/h2>\n<p>TypeScript es un lenguaje de programaci\u00f3n que agrega funcionalidad adicional a JavaScript.<\/p>\n<p>JavaScript nunca fue dise\u00f1ado para ejecutar aplicaciones front-end y back-end complejas. Originalmente, se dise\u00f1\u00f3 para a\u00f1adir interactividad simple a los sitios web. Por ejemplo, para crear botones clicables y animar men\u00fas desplegables.<\/p>\n<p>Sin embargo, JavaScript se populariz\u00f3 entre los desarrolladores que encontraron maneras de usarlo m\u00e1s all\u00e1 de esto, lo que gener\u00f3 algunos problemas: el lenguaje era demasiado indulgente. Era muy f\u00e1cil cometer errores de programaci\u00f3n o usar incorrectamente funciones que posteriormente da\u00f1ar\u00edan una aplicaci\u00f3n, y JavaScript carec\u00eda de muchas de las caracter\u00edsticas de otros lenguajes. TypeScript se desarroll\u00f3 para abordar estos problemas, a la vez que era compatible con los entornos JavaScript existentes.<\/p>\n<p>TypeScript es un lenguaje de tipado est\u00e1tico y un superconjunto de JavaScript que se basa en la sintaxis y la funcionalidad de JavaScript. Esto significa que puedes usar JavaScript en tu c\u00f3digo TypeScript, pero no TypeScript en tu c\u00f3digo JavaScript, ya que el c\u00f3digo escrito en TypeScript utiliza caracter\u00edsticas y sintaxis que no est\u00e1n disponibles en JavaScript.<\/p>\n<p>TypeScript debe compilarse a JavaScript para funcionar en navegadores web y entornos como Node.js (otro t\u00e9rmino es &quot;transpired&quot; porque no se traduce a un lenguaje de bajo nivel). Cuando el c\u00f3digo TypeScript se compila a JavaScript, el c\u00f3digo JavaScript resultante no est\u00e1 dise\u00f1ado para editarse directamente.<\/p>\n<p>El flujo de trabajo para crear aplicaciones TypeScript consiste en escribirlas en TypeScript, compilarlas a JavaScript y, finalmente, implementarlas. Si bien este paso adicional puede parecer una complejidad innecesaria, existe por una muy buena raz\u00f3n: si TypeScript fuera un lenguaje completamente nuevo, no valdr\u00eda la pena considerarlo, pero como compila JavaScript para que pueda ejecutarse en sistemas existentes, ha ganado una amplia aceptaci\u00f3n.<\/p>\n<p>La extensi\u00f3n de archivo para TypeScript es .ts. A continuaci\u00f3n, se muestra un archivo de ejemplo llamado index.ts con c\u00f3digo b\u00e1sico de TypeScript:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>let message: string = \"Hello, World!\";\r\nfunction greeting () {\r\nconsole.log(message);\r\n}\r\ngreeting();<\/code><\/pre>\n<\/div>\n<p>Tenga en cuenta que si bien la sintaxis es muy similar a JavaScript, en este ejemplo se ve algo diferente: la variable message va seguida de dos puntos (:) y su tipo (en este caso TypeScript) nos permite especificar que el mensaje debe ser una cadena y no puede tomar un valor de un tipo diferente.<\/p>\n<h2 id=\"%d9%88%db%8c%da%98%da%af%db%8c-%d9%87%d8%a7-%d9%88-%d9%85%d8%b2%d8%a7%db%8c%d8%a7%db%8c-%d8%a8%d8%b1%d8%aa%d8%b1-typescript-%d8%a8%d8%b1%d8%a7%db%8c-%d8%aa%d9%88%d8%b3%d8%b9%d9%87-%d8%af%d9%87%d9%86\">Principales caracter\u00edsticas y beneficios de TypeScript para desarrolladores<\/h2>\n<p>TypeScript se llama as\u00ed porque su caracter\u00edstica principal es la introducci\u00f3n de la seguridad de tipos en JavaScript. En el ejemplo anterior, se aplica un tipo de cadena a la variable de mensaje, por lo que no se puede usar un valor num\u00e9rico ni ning\u00fan otro tipo. Esto puede parecer restrictivo, pero en realidad es una ventaja para los desarrolladores.<\/p>\n<h2 id=\"%d8%a7%db%8c%d9%85%d9%86%db%8c-%d8%aa%d8%a7%db%8c%d9%be-%d9%88-%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d9%87%d8%a7%db%8c-%d8%b2%d9%85%d8%a7%d9%86-%da%a9%d8%a7%d9%85%d9%be%d8%a7%db%8c%d9%84%d8%8c-%d8%b1%d8%a7\">La seguridad de tipos y las comprobaciones en tiempo de compilaci\u00f3n reducen los errores de programaci\u00f3n<\/h2>\n<p>Considere este escenario: toma valores de dos entradas de texto HTML y desea agregarlos. JavaScript lee estos valores como cadenas (\u00a1es un cuadro de texto!). El resultado final es el siguiente:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>let a = \"2\"; \/\/ Assuming the value has been read from a text input\r\nlet b = \"5\";\r\nconsole.log(a + b); \/\/ Result is \"25\"<\/code><\/pre>\n<\/div>\n<p>Este c\u00f3digo se ejecuta sin advertencias ni errores, y los valores en los cuadros de texto se tratan como cadenas, lo que significa que, en lugar de sumarse mediante operaciones aritm\u00e9ticas, se concatenan, lo que resulta en el resultado no deseado de &quot;25&quot; en lugar de 7. Si est\u00e1s creando una herramienta comercial y quieres sumar valor monetario, esto puede ser muy perjudicial: \u00a1le est\u00e1s cobrando de m\u00e1s a tu cliente!<\/p>\n<p>Esto demuestra la importancia de la seguridad de tipos. A continuaci\u00f3n, se aplica el tipo de las variables a\u00f1adidas a\u00f1adi\u00e9ndoles un tipo:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>let a: number = \"2\";\r\nlet b: number = \"2\";\r\nconsole.log(a + b);<\/code><\/pre>\n<\/div>\n<p>Si intenta compilar y ejecutar este c\u00f3digo, no funcionar\u00e1; en su lugar, obtendr\u00e1 un error:<\/p>\n<p class=\"typography_paragraph01__q_o85\"><code>El tipo &#039;cadena&#039; no se puede asignar al tipo &#039;n\u00famero&#039;.<\/code><\/p>\n<p>Esto indica que intentaste asignar por error un valor de cadena a una variable num\u00e9rica, por lo que puedes corregirlo, por ejemplo, convirtiendo expl\u00edcitamente la cadena en un n\u00famero. TypeScript facilita la depuraci\u00f3n de tu programa y la hace m\u00e1s fiable para tus usuarios, impidiendo que tu c\u00f3digo se compile y ejecute si contiene errores tipogr\u00e1ficos.<\/p>\n<p>Al trabajar con TypeScript, no es necesario especificar el tipo de una variable (aunque normalmente deber\u00eda): la inferencia de tipos permite declarar y usar variables sin especificar un tipo, y TypeScript infiere el tipo bas\u00e1ndose en el valor y el uso. Esto resulta \u00fatil al importar c\u00f3digo JavaScript sin tipo para su uso en proyectos de TypeScript.<\/p>\n<p>Si quieres jugar con esto por ti mismo, TypeScript Playground te permite escribir y probar c\u00f3digo TypeScript directamente en tu navegador sin necesidad de compilar.<\/p>\n<h2 id=\"%d8%a7%d9%86%d9%88%d8%a7%d8%b9%d8%8c-%da%a9%d9%84%d8%a7%d8%b3%d9%87%d8%a7-%d9%88-%d8%b1%d8%a7%d8%a8%d8%b7%d9%87%d8%a7%db%8c-%d8%b3%d9%81%d8%a7%d8%b1%d8%b4%db%8c-%d8%af%d8%a7%d8%af\">Los tipos, clases e interfaces personalizados mantienen la coherencia de sus datos.<\/h2>\n<p>TypeScript ampl\u00eda el soporte de JavaScript para la programaci\u00f3n orientada a objetos con soporte para sus propios tipos personalizados, as\u00ed como mejoras en clases, interfaces y herencia.<\/p>\n<p>La creaci\u00f3n de sus propios tipos de objetos e interfaces le permite modelar sus datos en TypeScript para garantizar que sus datos se procesen y almacenen correctamente.<\/p>\n<p>Las clases y la herencia permiten un c\u00f3digo limpio y los principios DRY, manteniendo su base de c\u00f3digo mucho m\u00e1s organizada que el JavaScript tradicional.<\/p>\n<h2 id=\"enums-%d9%88-%d8%a7%d9%86%d9%88%d8%a7%d8%b9-%d8%aa%d8%ad%d8%aa-%d8%a7%d9%84%d9%84%d9%81%d8%b8%db%8c-%d8%af%d8%b1%da%a9-%da%a9%d8%af-%d8%b4%d9%85%d8%a7-%d8%b1%d8%a7-%d8%a2%d8%b3%d8%a7%d9%86-%d8%aa\">Las enumeraciones y los tipos literales hacen que su c\u00f3digo sea m\u00e1s f\u00e1cil de entender<\/h2>\n<p>Las enumeraciones hacen que su c\u00f3digo sea m\u00e1s legible y conveniente al nombrar valores que de otro modo podr\u00edan ser ambiguos.<\/p>\n<p>Por ejemplo, supongamos que almacena el estado de un pedido en su base de datos como un valor num\u00e9rico para ahorrar espacio y agilizar la b\u00fasqueda. En lugar de &quot;pendiente&quot;, &quot;pagado&quot; y &quot;enviado&quot;, podr\u00eda almacenar estos valores como los n\u00fameros 0, 1 y 2, respectivamente.<\/p>\n<p>El efecto secundario es que el c\u00f3digo se vuelve confuso porque los n\u00fameros en s\u00ed mismos no describen mucho. Podr\u00edas olvidar qu\u00e9 n\u00famero corresponde a qu\u00e9 condici\u00f3n y usar el incorrecto. Las enumeraciones ofrecen una soluci\u00f3n pr\u00e1ctica:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>enum OrderStatus {\r\npending,\r\npaid,\r\nshipped,\r\n}<\/code><\/pre>\n<\/div>\n<p>En la lista anterior, &quot;pendiente&quot; tiene el valor 0 (las enumeraciones, al igual que otros \u00edndices en programaci\u00f3n, comienzan a contar la posici\u00f3n de los elementos desde cero), &quot;pagado&quot; tiene el valor 1 y &quot;enviado&quot; tiene el valor 2. Al usar una enumeraci\u00f3n, se hace referencia a sus valores por su nombre y se devuelve el valor del \u00edndice:<\/p>\n<p class=\"typography_paragraph01__q_o85\"><code>console.log(EstadoDelPedido.pagado);<span>\u00a0<\/span><\/code><code><i>\/\/ Salida 1<\/i><\/code><\/p>\n<p>Los tipos literales y las uniones asignan valores espec\u00edficos a las variables. Por ejemplo, podr\u00eda tener una funci\u00f3n que solo espera recibir el valor &quot;gato&quot; o &quot;perro&quot;:<\/p>\n<div class=\"hcb_wrap\" data-no-translation=\"\" data-no-auto-translation=\"\">\n<pre class=\"prism line-numbers lang-ts\" data-lang=\"TypeScript\"><code>function myFunction(pet: \"cat\" | \"dog\") {\r\nconsole.log(pet);\r\n}<\/code><\/pre>\n<\/div>\n<p>Si su c\u00f3digo pasa valores distintos de &quot;cat&quot; o &quot;dog&quot; a esta funci\u00f3n, se generar\u00e1 un error. Esto ayuda a garantizar que se detecten m\u00e1s problemas durante el desarrollo: puede escribir funciones que esperan una entrada espec\u00edfica, sabiendo que si se introduce un error que les env\u00ede un valor inesperado, su programa no compilar\u00e1.<\/p>\n<h2 id=\"%d9%86%d8%ad%d9%88%d9%87-%d9%86%d8%b5%d8%a8-typescript-%d9%88-%d8%a7%d8%b3%d8%aa%d9%81%d8%a7%d8%af%d9%87-%d8%a7%d8%b2-%da%a9%d8%a7%d9%85%d9%be%d8%a7%db%8c%d9%84%d8%b1-typescript\">C\u00f3mo instalar TypeScript y utilizar el compilador de TypeScript<\/h2>\n<p>El c\u00f3digo TypeScript debe compilarse en JavaScript para que pueda ejecutarse en navegadores web y Node.js, y para eso es necesario instalar el compilador TypeScript.<\/p>\n<p>Puede instalar TypeScript globalmente usando el siguiente comando npm.<\/p>\n<p class=\"typography_paragraph01__q_o85\"><code>npm install -g typescript<\/code><\/p>\n<p>Una vez instalado, puedes ejecutar el comando de compilaci\u00f3n tsc TypeScript desde cualquier lugar de tu terminal usando npx:<\/p>\n<p class=\"typography_paragraph01__q_o85\"><code>\u00edndice tsc.ts<\/code><\/p>\n<p>El comando anterior compila el archivo TypeScript index.ts y genera un archivo JavaScript compilado llamado index.js.<\/p>\n<h2 id=\"%d9%86%d8%ad%d9%88%d9%87-%d9%86%d9%88%d8%b4%d8%aa%d9%86-%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d8%af%d8%b1-typescript\">C\u00f3mo escribir un programa en TypeScript<\/h2>\n<p>TypeScript destaca en la creaci\u00f3n de aplicaciones y sitios web complejos de varias p\u00e1ginas. La mayor\u00eda de los desarrolladores no lo utilizan para tareas b\u00e1sicas como a\u00f1adir interactividad a p\u00e1ginas web individuales, pero s\u00ed lo utilizan para crear aplicaciones grandes con React o Angular.<\/p>\n<p>Muchos desarrolladores utilizan editores de c\u00f3digo que admiten la integraci\u00f3n de TypeScript para poder aprovechar la finalizaci\u00f3n de c\u00f3digo, la documentaci\u00f3n en l\u00ednea y el resaltado de errores para agilizar sus procesos de desarrollo y depuraci\u00f3n.<\/p>\n<h2 id=\"%d8%a2%db%8c%d8%a7-%d9%85%db%8c-%d8%aa%d9%88%d8%a7%d9%86%d9%85-%d8%a7%d8%b2-%da%a9%d8%af-%d8%ac%d8%a7%d9%88%d8%a7-%d8%a7%d8%b3%da%a9%d8%b1%db%8c%d9%be%d8%aa-%d9%85%d9%88%d8%ac%d9%88%d8%af-%d8%ae%d9%88\">\u00bfPuedo utilizar mi c\u00f3digo JavaScript existente?<\/h2>\n<p>\u00a1S\u00ed! TypeScript es compatible con JavaScript. Puedes importar tu c\u00f3digo JavaScript antiguo y seguir us\u00e1ndolo en tus proyectos TypeScript, adem\u00e1s de modificarlo con el tiempo para aprovechar las nuevas funciones de TypeScript.<\/p>\n<h2 id=\"%d9%be%d8%a7%db%8c%d8%a7%d9%86-%d8%b3%d8%a7%d8%ae%d8%aa-%d8%a8%d8%a7-typescript-%d8%a8%d8%b1%d8%a7%db%8c-%d9%85%d8%b1%d9%88%d8%b1%da%af%d8%b1\">Terminar de construir con TypeScript para el navegador<\/h2>\n<p>React es una biblioteca que te ayuda a crear interfaces de usuario para tus aplicaciones front-end. Te proporciona la base para crear componentes reutilizables, simplificando y modularizando el desarrollo de tus aplicaciones. Tambi\u00e9n te permite crear p\u00e1ginas din\u00e1micas con las que el usuario puede interactuar mostrando, ocultando, moviendo y modificando la apariencia del contenido. Las aplicaciones React se pueden escribir en TypeScript: esta combinaci\u00f3n es una herramienta popular y potente para los desarrolladores front-end.<\/p>\n<p>Angular es un framework completo que utiliza TypeScript para crear sus componentes. Va m\u00e1s all\u00e1 de React: adem\u00e1s de proporcionar herramientas para crear interfaces de usuario, tambi\u00e9n proporciona un framework para una aplicaci\u00f3n completa. El enfoque conceptual de Angular permite a los desarrolladores crear m\u00e1s r\u00e1pido, siempre que el concepto de su aplicaci\u00f3n se ajuste a la arquitectura Angular.<\/p>\n<p>Tanto React como Angular permiten crear aplicaciones TypeScript para Ionic y Electron. Ionic permite crear aplicaciones m\u00f3viles para iOS y Android con TypeScript, y Electron permite integrar aplicaciones web en aplicaciones de escritorio para Windows, Linux y macOS.<\/p>\n<h2 id=\"%d8%a7%d8%b3%d8%aa%d9%82%d8%b1%d8%a7%d8%b1-backend%d9%87%d8%a7%db%8c-typescript-%d8%af%d8%b1-%d8%b3%d8%b1%d9%88%d8%b1\">Implementaci\u00f3n de backends de TypeScript en el servidor<\/h2>\n<p>TypeScript no se limita a la creaci\u00f3n de aplicaciones front-end. Tambi\u00e9n se puede usar con Node.js para desarrollar servicios back-end y aplicaciones de l\u00ednea de comandos.<\/p>\n<p>Tambi\u00e9n puedes usar TypeScript con el marco web Fastify o usar un marco espec\u00edfico de TypeScript como Nest para crear API de tipos seguros.<\/p>\n<h2 id=\"typescript-%d9%88-graphql\">TypeScript y GraphQL<\/h2>\n<p><a href=\"https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2.jpg\"><img  loading=\"lazy\"  decoding=\"async\"  src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEUAAP+KeNJXAAAAAXRSTlMAQObYZgAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAApJREFUCNdjYAAAAAIAAeIhvDMAAAAASUVORK5CYII=\"  alt=\"\"  width=\"1200\"  height=\"675\"  class=\"aligncenter wp-image-16644 size-full pk-lazyload\"  data-pk-sizes=\"auto\"  data-ls-sizes=\"auto, (max-width: 1200px) 100vw, 1200px\"  data-pk-src=\"https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2.jpg\"  data-pk-srcset=\"https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2.jpg 1200w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-300x169.jpg 300w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-1024x576.jpg 1024w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-768x432.jpg 768w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-110x62.jpg 110w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-200x113.jpg 200w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-380x214.jpg 380w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-255x143.jpg 255w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-550x309.jpg 550w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-800x450.jpg 800w, https:\/\/cdn.itpiran.net\/2025\/01\/15012317\/1-2-1160x653.jpg 1160w\" ><\/a><\/p>\n<p>GraphQL es un lenguaje de consulta para buscar y recuperar datos de las API. Al igual que TypeScript, est\u00e1 tipificado, por lo que proporciona datos estructurados y consistentes. Al usar servicios compatibles con GraphQL para implementarlo en sus backends y adaptar sus tipos a su c\u00f3digo TypeScript, puede mejorar significativamente la calidad de sus aplicaciones, garantizando que todos los datos modelados en sus servicios backend se reflejen correctamente en sus frontends y que todos los datos recopilados en estos se almacenen correctamente al cargarlos.<\/p>\n<p>Si usa Contentful para administrar su contenido componible, los miembros de nuestra comunidad han creado aplicaciones y herramientas que ayudan a generar declaraciones de tipo para sus tipos de contenido y sincronizar TypeScript con su modelo de contenido.<\/p>","protected":false},"excerpt":{"rendered":"Introducci\u00f3n. El lenguaje de programaci\u00f3n TypeScript ofrece muchas ventajas sobre JavaScript para los desarrolladores. Capacidades adicionales\u2026","protected":false},"author":1,"featured_media":16646,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"TypeScript \u0686\u06cc\u0633\u062a","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_focuskeywords":"[]","_yoast_wpseo_primary_category":"193","footnotes":""},"categories":[193,363],"tags":[416],"class_list":{"0":"post-16641","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-tutorials","8":"category-programming","9":"tag-typescript"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f - \u0628\u0644\u0627\u06af ITPiran<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/what-is-typescript-and-why-should-you-use-it\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f - \u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"og:description\" content=\"\u0645\u0642\u062f\u0645\u0647 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc TypeScript \u0645\u0632\u0627\u06cc\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062f\u0627\u0631\u062f. \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/what-is-typescript-and-why-should-you-use-it\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0628\u0644\u0627\u06af ITPiran\" \/>\n<meta property=\"article:published_time\" content=\"2025-01-14T22:02:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1793\" \/>\n\t<meta property=\"og:image:height\" content=\"1110\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\"},\"headline\":\"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f\",\"datePublished\":\"2025-01-14T22:02:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/\"},\"wordCount\":116,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/01\\\/15013050\\\/TypeScriptWallpaper.jpg\",\"keywords\":[\"typeScript\"],\"articleSection\":[\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/\",\"name\":\"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f - \u0628\u0644\u0627\u06af ITPiran\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/01\\\/15013050\\\/TypeScriptWallpaper.jpg\",\"datePublished\":\"2025-01-14T22:02:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#primaryimage\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/01\\\/15013050\\\/TypeScriptWallpaper.jpg\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2025\\\/01\\\/15013050\\\/TypeScriptWallpaper.jpg\",\"width\":1793,\"height\":1110},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/tutorials\\\/what-is-typescript-and-why-should-you-use-it\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0622\u0645\u0648\u0632\u0634\u06cc\",\"item\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/category\\\/tutorials\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"name\":\"\u0628\u0644\u0627\u06af ITPiran\",\"description\":\"\u0627\u062e\u0628\u0627\u0631 \u0648 \u0645\u0642\u0627\u0644\u0627\u062a \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#organization\",\"name\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\",\"alternateName\":\"ITPIran Blog\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"contentUrl\":\"https:\\\/\\\/cdn.itpiran.net\\\/2023\\\/12\\\/27150508\\\/cropped-ITPIRAN-BLOG-LOGO-2.png\",\"width\":512,\"height\":512,\"caption\":\"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646\"},\"image\":{\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/#\\\/schema\\\/person\\\/04ed27b919baca468a2273f8e4318f81\",\"name\":\"admin\",\"url\":\"https:\\\/\\\/www.itpiran.net\\\/blog\\\/es\\\/author\\\/admin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u00bfQu\u00e9 es TypeScript y por qu\u00e9 deber\u00edas usarlo? - Blog de ITPiran","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/what-is-typescript-and-why-should-you-use-it\/","og_locale":"es_ES","og_type":"article","og_title":"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f - \u0628\u0644\u0627\u06af ITPiran","og_description":"\u0645\u0642\u062f\u0645\u0647 \u0632\u0628\u0627\u0646 \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc TypeScript \u0645\u0632\u0627\u06cc\u0627\u06cc \u0632\u06cc\u0627\u062f\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u062c\u0627\u0648\u0627 \u0627\u0633\u06a9\u0631\u06cc\u067e\u062a \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u062f\u0647\u0646\u062f\u06af\u0627\u0646 \u062f\u0627\u0631\u062f. \u0642\u0627\u0628\u0644\u06cc\u062a \u0647\u0627\u06cc \u0627\u0636\u0627\u0641\u06cc&hellip;","og_url":"https:\/\/www.itpiran.net\/blog\/es\/tutorials\/what-is-typescript-and-why-should-you-use-it\/","og_site_name":"\u0628\u0644\u0627\u06af ITPiran","article_published_time":"2025-01-14T22:02:18+00:00","og_image":[{"width":1793,"height":1110,"url":"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg","type":"image\/jpeg"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"admin","Tiempo de lectura":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#article","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/"},"author":{"name":"admin","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81"},"headline":"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f","datePublished":"2025-01-14T22:02:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/"},"wordCount":116,"commentCount":0,"publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg","keywords":["typeScript"],"articleSection":["\u0622\u0645\u0648\u0632\u0634\u06cc","\u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/","url":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/","name":"\u00bfQu\u00e9 es TypeScript y por qu\u00e9 deber\u00edas usarlo? - Blog de ITPiran","isPartOf":{"@id":"https:\/\/www.itpiran.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#primaryimage"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#primaryimage"},"thumbnailUrl":"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg","datePublished":"2025-01-14T22:02:18+00:00","breadcrumb":{"@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#primaryimage","url":"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg","contentUrl":"https:\/\/cdn.itpiran.net\/2025\/01\/15013050\/TypeScriptWallpaper.jpg","width":1793,"height":1110},{"@type":"BreadcrumbList","@id":"https:\/\/www.itpiran.net\/blog\/tutorials\/what-is-typescript-and-why-should-you-use-it\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.itpiran.net\/blog\/"},{"@type":"ListItem","position":2,"name":"\u0622\u0645\u0648\u0632\u0634\u06cc","item":"https:\/\/www.itpiran.net\/blog\/category\/tutorials\/"},{"@type":"ListItem","position":3,"name":"TypeScript \u0686\u06cc\u0633\u062a \u0648 \u0686\u0631\u0627 \u0628\u0627\u06cc\u062f \u0627\u0632 \u0622\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u06a9\u0631\u062f\u061f"}]},{"@type":"WebSite","@id":"https:\/\/www.itpiran.net\/blog\/#website","url":"https:\/\/www.itpiran.net\/blog\/","name":"Blog de ITPiran","description":"Noticias y art\u00edculos sobre comercio sostenible en Ir\u00e1n","publisher":{"@id":"https:\/\/www.itpiran.net\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.itpiran.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.itpiran.net\/blog\/#organization","name":"Blog sobre negocios iran\u00edes sostenibles","alternateName":"ITPIran Blog","url":"https:\/\/www.itpiran.net\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","contentUrl":"https:\/\/cdn.itpiran.net\/2023\/12\/27150508\/cropped-ITPIRAN-BLOG-LOGO-2.png","width":512,"height":512,"caption":"\u0628\u0644\u0627\u06af \u062a\u062c\u0627\u0631\u062a \u067e\u0627\u06cc\u062f\u0627\u0631 \u0627\u06cc\u0631\u0627\u0646\u06cc\u0627\u0646"},"image":{"@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.itpiran.net\/blog\/#\/schema\/person\/04ed27b919baca468a2273f8e4318f81","name":"administraci\u00f3n","url":"https:\/\/www.itpiran.net\/blog\/es\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/16641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/comments?post=16641"}],"version-history":[{"count":1,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/16641\/revisions"}],"predecessor-version":[{"id":16645,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/posts\/16641\/revisions\/16645"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media\/16646"}],"wp:attachment":[{"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/media?parent=16641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/categories?post=16641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.itpiran.net\/blog\/es\/wp-json\/wp\/v2\/tags?post=16641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}