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.