Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

224
Views
How can i set when to run Typescript decorators

When I define a parameterized decorator for the method, the decorator starts running before the method runs.

I want the decorator to run after the method is called.

 function fooDecorator(value: boolean) {
  console.log('fooDecorator init');
  return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
  };
}

class Foo{


  @fooDecorator(true)
  foo(){

  }

}

app.listen(5000, () => console.log("server started"));




// Output 
fooDecoratorinit
server started
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

TypeScript method decorators run during class initialization, so they can decorate the method; see the documentation. If you want a decorator to do something when the method is called, you have the decorator wrap the method in another function that does the thing you want it to do:

function fooDecorator(flag: boolean) {
    return function (target: any, propertyKey: string; descriptor: PropertyDescriptor) {
        const original = target[propertyKey];
        return {
            ...descriptor,
            value(...args: any[]) {
                console.log("Inserted behavior, flag = " + flag);
                return original.apply(this, args);
            }
        }
    };
}

class Foo{
    @fooDecorator(true)
    foo(){
        console.log("Original foo");
    }
}

const f = new Foo();
f.foo();

Playground link

Output:

Inserted behavior, flag = true
Original foo
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!