Decorators with arguments

We can use a special kind of decorator factory to allow developers to configure the behavior of a decorator. For example, we could pass a string to a class decorator as follows:

@logClass("option") 
class Person { 
// ... 

To be able to pass some parameters to a decorator, we need to wrap the decorator with a function. The wrapper function takes the options of our choice and returns a decorator:

function logClass(option: string) { 
    return function(target: any) { 
        // class decorator logic goes here 
        // we have access to the decorator parameters 
        console.log(target, option); 
    }; 
} 

This can be applied to all the kinds of decorators that you learned in this chapter.

It is very important to avoid using an arrow function as ...

Get Learning TypeScript 2.x - Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.