Javascript es un lenguaje de programación fácil de iniciar. Se puede usar del lado del cliente y/o del lado del servidor, es un lenguaje dinámico y flexible, tiene un ecosistema maduro, tiene primitivas de lenguaje como cadena, número y objeto, pero no verifica que hayas tipos asignados y aquí es donde comienza el debate.
Al ser un lenguaje de tipo dinámico, esto significa que JavaScript no sabe cuál es el tipo de una variable hasta que se crea una instancia en tiempo de ejecución. También significa que podría ser demasiado tarde.
TypeScript
Segun la documentación https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes.html
TypeScript mantiene una relación inusual con JavaScript, es decir, ofrece todas las características de JavaScript y una capa adicional sobre ellas: el sistema de tipos de TypeScript.
Por ejemplo, en esta función:
function aumento(salario, aumento){
return salario + aumento}
aumento(10, "30")
Solo descubriremos el error cuando el código se ejecute en el navegador, ya que TypeScript agrega soporte de tipo para JavaScript y detecta errores de tipo durante la compilación. Si le pasamos este código a Typescript:
El mensaje de error aparecerá justo frente a nosotros diciendo que esperábamos dos números enteros y pasamos un número entero y una cadena en el parámetro debido al sistema de escritura.
Otra característica interesante es que en JavaScript es muy común que creemos objetos y pasemos algunas características, como por ejemplo:
const producto = {
id: 1,
nombre: "vaso",
};
Con TypeScript mantenemos la misma estructura, pero usamos una interfaz:
interface Producto {
id: number;
name: string;
}
Usar TypeScript te traerá algunas ventajas como:
Retroalimentación de error más rápida;
Proceso de refactorización más fácil;
Idioma autocompletado, muy bueno en VS code;
Ser capaz de adoptar gradualmente el mecanografiado en una base de código;
Sin embargo, adoptar TypeScript puede hacer que la productividad del equipo baje al principio, ya que hay una curva de aprendizaje que no se puede ignorar, otro punto es que para usar TypeScript, necesita un proceso de construcción para compilar en código JavaScript. El proceso de compilación puede llevar algún tiempo dependiendo del tamaño de su proyecto.
Si usa JavaScript en proyectos NextJS, por ejemplo, una alternativa a hacer esta verificación de tipos es usar PropTypes
import PropTypes from 'prop-types';
// código omitido
*export const Link = ({ children, href, ...props }) => (
<NextLink href={href} passHref>
<StyledLink {...props}>
{children}
</StyledLink>
</NextLink>
);
Link.propTypes = {
href: PropTypes.string.isRequired,
children: PropTypes.node.isRequired,
};
Siempre recordando que TypeScript no es una solución mágica que resuelve todos los problemas en JavaScript y tampoco es un reemplazo total.
¿Te gustó el contenido y quieres aprender más sobre él? Luego acceda al Entrenamiento Front-end de Alura y sumérjete en las formaciones de JavaScript.
Preguntas frecuentes: ¿Qué es TypeScript?
TypeScript es un lenguaje de programación y también un superconjunto de JavaScript. Esto significa que todo el código JavaScript es perfectamente aceptado en un programa TypeScript, añadiendo una serie de funciones adicionales, especialmente relacionadas con la escritura.
¿Cuáles son las ventajas de TypeScript?
Hay varias ventajas, especialmente relacionadas con la escritura estática:
Error más rápido y retroalimentación en tiempo de compilación;Proceso de refactorización más fácil;Autocompletar idioma;Posibilidad de migrar de idioma poco a pocoTener una gran empresa detrás para aportar agilidad en las nuevas versiones, en este caso Microsoft.
¿Cuál es la diferencia entre JavaScript y TypeScript?
Son dos lenguajes de programación diferentes, pero uno es el superconjunto del otro. TypeScript es ese superconjunto, lo que le permite usar absolutamente todo JavaScript válidamente. Es decir, todo su código JavaScript es TypeScript válido (pero no al revés). La principal diferencia estará en relación con la tipificación de datos, el uso de clases, los mecanismos de abstracción, que son mucho más fuertes.
Felipe Nascimento
Desarrollador e instructor en Alura con un enfoque en JavaScript.
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Paga en moneda local en los siguientes países
Cursos de Programación, Front End, Data Science, Innovación y Gestión.
Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana
Puedes realizar el pago de tus planes en moneda local en los siguientes países:
País | |||||||
---|---|---|---|---|---|---|---|
Plan Semestral |
487.37
BOB |
68358.72
CLP |
308854.24
COP |
65.90
USD |
260.86
PEN |
1428.58
MXN |
3016.99
UYU |
Plan Anual |
738.82
BOB |
103627.26
CLP |
468202.41
COP |
99.90
USD |
395.45
PEN |
2165.64
MXN |
4573.56
UYU |
Plan Anual + Boost |
Acceso a todos
los cursos
Estudia las 24 horas,
dónde y cuándo quieras
Nuevos cursos
cada semana