¿Qué es TypeScript?
TypeScript es un lenguaje que amplía JavaScript mediante un sistema de tipos estático. Su objetivo es permitir que el código pueda describir de forma más precisa los datos que maneja antes de ejecutarse.
TypeScript se utiliza sobre JavaScript, por lo que conceptos como variables, funciones, objetos y clases continúan siendo parte fundamental del desarrollo.
1. Tipos básicos
Una de las características principales de TypeScript es que permite indicar qué tipo de dato puede contener una variable.
Por ejemplo:
let nombre: string = 'Arturo';
let edad: number = 24;
let activo: boolean = true;
En este caso, cada variable tiene un tipo explícitamente definido.
El tipo string representa texto, number representa números y boolean representa valores true o false.
2. Inferencia de tipos
No siempre es necesario escribir el tipo manualmente. TypeScript puede inferirlo a partir del valor asignado inicialmente.
let nombre = 'Arturo';
let edad = 22;
TypeScript puede determinar que nombre es un string y que edad es un number.
La inferencia permite mantener un código más limpio cuando el tipo puede determinarse directamente a partir de la expresión.
3. Funciones
También es posible definir los tipos de los parámetros y del valor que devuelve una función.
function sumar(a: number, b: number): number {
return a + b;
}
Los parámetros a y b deben ser números y la función devuelve un valor de tipo number.
Esto permite expresar de forma explícita el contrato básico de la función.
4. Interfaces
Las interfaces permiten describir la estructura que debe tener un objeto.
interface Usuario {
id: number;
nombre: string;
}
A partir de esta definición podemos crear objetos que sigan esa estructura:
const usuario: Usuario = {
id: 1,
nombre: 'Arturo'
};
La interfaz establece que el objeto debe contener id como número y nombre como texto.
5. Arrays
TypeScript también permite indicar el tipo de los elementos que contiene un arreglo.
const numeros: number[] = [10, 20, 30];
const nombres: string[] = ['Arturo', 'María', 'Carlos'];
En el primer caso solamente se esperan números y en el segundo solamente cadenas de texto.
6. Union Types
Un tipo unión permite indicar que un valor puede pertenecer a más de un tipo.
let id: number | string;
La variable id puede contener un number o un string.
Esto resulta útil cuando una misma estructura necesita aceptar diferentes representaciones de un dato.
7. Type Alias
Los alias de tipos permiten crear nombres para tipos que pueden reutilizarse en diferentes partes del programa.
type Identificador = number | string;
let id: Identificador = 15;
El alias Identificador representa la unión definida en su declaración.
8. TypeScript y JavaScript
TypeScript no reemplaza los fundamentos de JavaScript. Variables, funciones, objetos, clases, módulos y otras características del lenguaje siguen formando parte del código.
La diferencia principal está en que TypeScript incorpora información adicional sobre los tipos y después permite llevar ese código al entorno de JavaScript.
Podemos representar la relación de forma sencilla:
TypeScript
->
JavaScript
->
Entorno de ejecución
9. ¿Por qué utilizar TypeScript?
La información de tipos ayuda a detectar determinados problemas durante el desarrollo y permite describir con mayor claridad la estructura de los datos que utiliza una aplicación.
Por ejemplo, si una función espera un number, la declaración de tipos hace explícita esa expectativa:
function multiplicar(a: number, b: number): number {
return a * b;
}
El objetivo no es cambiar la lógica de la función, sino hacer más claro qué datos recibe y qué resultado produce.
Consideraciones
TypeScript añade un sistema de tipos sobre JavaScript y permite definir con mayor precisión la estructura de variables, funciones, objetos y otras partes de una aplicación.
Conceptos como tipos básicos, inferencia, interfaces, arrays, uniones y alias de tipos forman una base importante para comenzar a trabajar con el lenguaje.
Entender TypeScript requiere primero conocer JavaScript y después aprender cómo la información de tipos puede utilizarse para describir y organizar mejor el código.
© Arturo Juárez Monroy