Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Decorators: aplicación en parámetros

13/28
Recursos

Aportes 26

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Entiendo la explicación, sin embargo, me gustaría ver un ejemplo mas práctico para el uso de parámetros.

se debería explicar con algún ejemplo real que lo muestre por consola, ya que la clase se torna un poco aburrida y cortada de golpe, tampoco podemos comprobar si lo que esta diciendo el profesor es correcto o no

Me perdonara Alan (si lee este mensaje) 😦 pero el ejemplo no tiene una utilidad inmediata y no devela el poder de un decorador en los parametros, aqui dejo el ejemplo ligeramente modificado

function logParameter(target:any, propertyName:any, index:any) {
  // identificamos cada parametro que tenemos
  const metadataKey = `log_${propertyName}_parameters`;
  // checkeamos si es o no un arreglo
  if (Array.isArray(target[metadataKey])) {
    // agregamos nuestro index al array
    target[metadataKey].push(index);
  } else {
    // creamos un arreglo con index como único parametro
    target[metadataKey] = [index];
  }
  console.log(target[metadataKey]);
}

class P {
  greet(message: string, @logParameter additional:string): string {
    return message;
  }
}

const p = new P();
p.greet('Hola','Enrique');

Tambien un link donde pueden correrlo: https://repl.it/@tecnocrata/DecoratorsInParameters

Hola a todos, la verdad no me quedó muy claro la utilidad de decorators, hasta el momento, sería muy bueno se pudiera implementar algún tipo de ejemplo funcional.

Alguien seria tan amable por favor de explicarme la utilidad de este tema, no me queda muy claro su utilidad por favor. (Decorators en general si me queda claro pero esta clase no)

Alan, a que te refieres cuando te refieres al metadata de un parametro?

// haremos un log para ver que parametros tenemos en nuestra función
function logParameter(target, propertyName, index) {
  // identificamos cada parametro que tenemos
  const metadataKey = `log_${propertyName}_parameters`;
  // checkeamos si es o no un arreglo
  if (Array.isArray(target[metadatakey])) {
    // agregamos nuestro index al array
    target[metadataKey].push(index);
  } else {
    // creamos un arreglo con index como único parametro
    target[metadataKey] = [index];
  }
}

class P {
  greet(@logParameter message: string): string {
    return message;
  }
}

const p = new P();
p.greet('Hola');```

el concepto de decorators es similar al concepto de override en c# ??

Quizá hubiera quedado mas claro si hubiéramos ejecutado el código.

Creo que para que esto quede bien claro hay que revisar documentación: https://www.typescriptlang.org/docs/handbook/decorators.html

lo que entendí es que que los Decorators con una especie de middleware o filtros. o entendí mal?

En este ejemplo, quién sería target?

Para poder seguir los vídeos y testear. Yo lo proceso de forma automática con un archivo tsconfig.js en vscode. Y luego corro el js generado con “Run Code” tambien de vscode.

El curso es muy bueno, La guía es muy buena. Pero si seria una buena sugerencia para el profe Alan, para los próximos cursos, el compilar de este modo.

en este punto no entendi, no a la primera

Yo tengo muy poquita experiencia con programación y creo que los decoradores son geniales porque como su definición lo dice extienden la funcionalidad de las clases, le dan un valor agregado, entonces debe ser genial para usar con Angular o para programar otras cosas.

No me quedo de todo claro el uso de los decoradores, entiendo el concepto general, pero al momento entiendo que extiende el comportamiento pero en ciertas ocasiones siento que remplaza la funcionalidad mas no la extiende, como en los ejemplos de decoradores de clases.

En un proyecto de backend, para abstraer la transacción contra la base de datos con sequelize, crearia un decorador para aplicar a métodos que permita definir cual es transaccional o cual solo es de lectura

Me gustaron las clases de decoradores, creo que lo vi mucho en algunos códigos que leí y en su momento no entendí muy bien, aun no comprendo bien como y cuando implementarlos, pero confió que en las próximas clases y con practica se entenderá.

Deberís usar nombres de variables representativos porque el código es leído por otras personas.

tal vez en el ejemplo de a seguir se entienda todo mejor

Para este caso no seria lo mismo como agregarle un decorador al método que es llamado?

Es muy buena las explicación del profesor aunque la parte de los decoradores un poco compleja, si me pueden facilitar mas documentación se los agradecería.

seria bueno ver los log en pantalla.

Es recomendable ya saber algo de Angular antes de hacer este curso. A veces es necesario comenzar “al revés” para entender las cosas.
Muy buena explicación!

Me pareció genial este repaso del curso de TS, creo que si hizo falta ejemplos mas prácticos, pero espero que en la practica se pueda entender mejor, Vamos 🔥