Introducción a los decoradores en TypeScript
Con la aparición de las clases en ECMAScript en ES6, existen algunos nuevos escenarios en los cuales se agrega soporte adicional mediante anotaciones a las clases y los elementos que las componen. Los decoradores proveen una forma de agregar anotaciones y meta-programming syntax (sintaxis de meta-programación) para la declaración de clases y sus miembros. Los decoradores se encuentran en la fase 2 proposal (fase 2 de propuesta) para JavaScript, y están disponibles como una característica experimental de TypeScript.
¿Cómo agregar soporte experimental en TypeScript?
Para habilitar el soporte experimental para habilitar decoradores, se debe habilitar la propiedad experimentalDecorators
en la configuración del compilador, ya sea como parámetro en la línea de comandos o en el archivo tsconfig.json.
¿Como habilitar los decoradores de TypeScript desde la línea de comandos?
$ tsc --target ES5 --experimentalDecorators
¿Cómo habilitar decoradores desde el archivo de configuración tsconfig.json?
{
"compilerOptions": {
"target": "ES5",
"experimentalDecorators": true
}
}
¿Qué es un decorador?
Un decorador es un tipo especial de declaración que puede ser asociada a la declaración de una clase, método, accesor, propiedad o parámetro. Los decoradores usan la forma @expression
, en donde expression
debe ser evaluado como una función que será llamada en tiempo de ejecución con información acerca de la declaración decorada.
Por ejemplo, dado el decorador @sellado
podemos escribir una función como la siguiente.
function sellado() {
// hacer algo
}