Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Anotações no Angular2

Olá boa tarde, gostaria de saber como eu poderia criar minhas próprias anotações(Decorators), sejam elas de classe, atributo, método ou função, por exemplo eu tenho uma anotação(um exemplo qualquer):

export function Confirm(msg: string) {

    return function(target: any, propertyKey:string, descriptor: PropertyDescriptor )  : PropertyDescriptor {

        const origin = descriptor.value;
        descriptor.value = function(...args:any[]){

                if(confirm(msg)) {
                    //OU: original.apply(target, args);
                    original.call(target, ...args);    
                }    

        }

        return descriptor;

    }
}

Nesse exemplo eu crio uma anotação(Decorator), igual é criada nos cursos de Typescript I, II, mais e como eu exporto isso?Como eu utilizo essa anotação(Decorator) em algum método de classe que será um Component do Angular?, alguém poderia me ajudar, obrigada! :)

3 respostas

Você faz exatamente como aprendeu no curso de TypeScript. Você importa da mesma forma. Compartilhe sua implementação.

solução!

Talvez eu não tenha pego a essência da sua dúvida, qualquer coisa, compartilhe o código que tenta utilizar seu decorator. Lembre-se que no curso de TypeScript há decorator de método, de classe, de propriedade e cada um deve ser usado no respectivo local.

Eu Consegui Fazendo o Seguinte

# Criei o decorator
export function MyDecorator(condition: boolean) {
  return function (target: any, propKey: string, descriptor: PropertyDescript) {
    // Fiz uma Logica aqui para o método
  };
};

#Importei
import { MyDecorator } from './path-decorator';

@MyDecorator(true)
public methodName(params): void {
}

Obrigado Flávio, funcionou certinho...