Programación Básica en TypeScript
Colecciones
Descripción: Estructuras de datos que agrupan elementos.
Ejemplos: Arrays, mapas y conjuntos.
Uso: Facilitan la manipulación y el almacenamiento de múltiples valores.
Expresiones Lambda
Descripción: Funciones anónimas con una sintaxis más corta.
Sintaxis: (parametros) => { cuerpo de la función }
Uso: Simplifican la escritura de funciones y son útiles para callbacks.
Tipos
Descripción: Definiciones de las diferentes formas de datos que una variable puede contener.
Ejemplos: string
, number
, boolean
, any
, void
, null
, undefined
.
Uso: Aumentan la seguridad del código al evitar errores de tipo.
Programación Avanzada en TypeScript
Objetos y Clases
Descripción: Estructuras que representan entidades con propiedades y métodos.
class Persona {
nombre: string;
constructor(nombre: string) {
this.nombre = nombre;
}
saludar(): string {
return `Hola, ${this.nombre}`;
}
}
Uso: Facilitan la programación orientada a objetos, modelando entidades reales y sus comportamientos.
Patrones de Diseño
Singleton
Descripción: El patrón Singleton es un patrón de diseño que asegura que una clase tenga solo una instancia y proporciona un punto de acceso global a ella. Es útil cuando se necesita un control estricto sobre la instancia de una clase, como en el caso de la gestión de recursos compartidos (por ejemplo, una conexión a una base de datos).
class Singleton {
private static instancia: Singleton;
private constructor() {}
static getInstancia() {
if (!Singleton.instancia) {
Singleton.instancia = new Singleton();
}
return Singleton.instancia;
}
}
class Singleton {
// Propiedad estática privada para almacenar la instancia única
private static instance: Singleton;
// Propiedad de ejemplo
private value: number;
// Constructor privado para evitar la creación de instancias externas
private constructor() {
this.value = Math.random(); // Asignar un valor aleatorio para demostrar la singularidad
}
// Método estático público para obtener la instancia única
public static getInstance(): Singleton {
if (!Singleton.instance) {
Singleton.instance = new Singleton();
}
return Singleton.instance;
}
// Método para obtener el valor
public getValue(): number {
return this.value;
}
}
// Uso del Singleton
const singleton1 = Singleton.getInstance();
const singleton2 = Singleton.getInstance();
console.log(singleton1.getValue()); // Imprime un número aleatorio
console.log(singleton2.getValue()); // Imprime el mismo número que singleton1
console.log(singleton1 === singleton2); // true, ambas variables apuntan a la misma instancia
}
Uso: Implementa notificaciones entre objetos, útil en sistemas de eventos y suscriptores.