Fundamentos de TypeScript
¿Qué es TypeScript y por qué usarlo?
Instalación de Node.js y TypeScript CLI, configuración de tsconfig.json
Tipos primitivos: string, number, boolean, null, undefined de Typescript
Tipos especiales: any, unknown, never, void de TypeScript
Arrays, Tuplas, Enums en TypeScript
Funciones e Interfaces
Declaración de funciones, tipado de parámetros y valores de retorno
Parámetros opcionales, valores por defecto y sobrecarga de funciones
Creación y uso de interfaces de TypeScript
Propiedades opcionales, readonly, extensión de interfaces en TypeScript
Clases y Programación Orientada a Objetos
Creación de clases y constructores En TypeScript
Modificadores de acceso (public, private, protected) en Typescript
Uso de extends, sobreescritura de métodos en TypeScript
Introducción a Genéricos en Typescript
Restricciones con extends, genéricos en interfaces
Módulos y Proyectos
Importación y exportación de módulos en TypeScript
Agregando mi archivo de Typescript a un sitio web
Configuración de un proyecto Web con TypeScript
Selección de elementos, eventos, tipado en querySelector en TypeScript
Crear un proyecto de React.js con Typescript
Crea un proyecto con Angular y Typescript
Crea una API con Typescript y Express.js
Conceptos Avanzados
Introducción a types en TypeScript
Implementación de Decoradores de TypeScript
Async/await en Typescript
Pruebas unitarias con Jest y TypeScript
Principios SOLID, código limpio, patrones de diseño en Typescript
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Los decoradores en TypeScript representan una poderosa herramienta para extender la funcionalidad de clases, métodos, propiedades y parámetros. Esta característica, aunque experimental, ofrece una forma elegante de transferir metadatos y añadir comportamientos adicionales a elementos existentes, siendo especialmente útil en frameworks como Angular donde la comunicación entre componentes es fundamental.
Los decoradores son un patrón de diseño que permite añadir funcionalidades adicionales a elementos existentes sin modificar su estructura original. En TypeScript, se identifican fácilmente por el símbolo @
seguido del nombre del decorador.
Estos pueden implementarse en:
La principal ventaja de los decoradores es que permiten transferir metadatos entre diferentes partes de tu aplicación, facilitando la comunicación entre componentes, especialmente en frameworks como Angular.
Para implementar un decorador de clase, necesitamos seguir estos pasos:
@nombreDecorador
.Veamos un ejemplo práctico:
// Implementación del decorador
function personaDeck(target: Function) {
console.log(target);
// Extendemos la funcionalidad añadiendo un nuevo método
target.prototype.despedir = function(despedida: string): string {
return despedida + " " + this.nombre;
};
}
// Aplicación del decorador a la clase
@personaDeck
class Persona2 {
nombre: string;
edad: number;
// Declaramos el método que será añadido por el decorador
despedir!: (despedida: string) => string;
constructor(nombre: string, edad: number) {
this.nombre = nombre;
this.edad = edad;
}
saludar(saludo: string): string {
return `${saludo}, mi nombre es ${this.nombre} y tengo ${this.edad} años`;
}
}
Es importante notar que la función del decorador debe definirse antes de usarla con la sintaxis @
. De lo contrario, obtendremos un error en tiempo de ejecución.
Para utilizar decoradores en TypeScript, debemos habilitar la opción experimental en nuestro archivo de configuración tsconfig.json
:
{
"compilerOptions": {
"experimentalDecorators": true,
// otras opciones...
}
}
Puedes crear este archivo ejecutando el comando tsc --init
en la terminal dentro de tu proyecto.
Aunque existen otras formas de extender la funcionalidad de clases (como la herencia o las interfaces), los decoradores ofrecen ventajas únicas:
@Component
son fundamentales.En Angular, los decoradores son una parte esencial del framework. Por ejemplo, el decorador @Component
permite definir metadatos para un componente:
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'Mi Aplicación Angular';
}
Este decorador establece la comunicación entre la clase TypeScript y su correspondiente plantilla HTML, facilitando el intercambio de datos y comportamientos.
Los decoradores en TypeScript pueden parecer complejos al principio, pero una vez que comprendes su funcionamiento, se convierten en una herramienta invaluable para crear código más limpio, modular y fácil de mantener. ¿Has utilizado decoradores en tus proyectos? Comparte tu experiencia en los comentarios y descubre cómo esta característica puede mejorar tu desarrollo con TypeScript.
Aportes 3
Preguntas 0
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?