Brian Shen

9. Decorator Composition

# Typescript Decorator
Medium
Multiple decorators can be applied to a declaration, for example on a single line:
On multiple lines:
When multiple decorators apply to a single declaration, their evaluation is similar to function composition in mathematics. In this model, when composing functions f and g, the resulting composite (f ∘ g)(x) is equivalent to f(g(x)).
As such, the following steps are performed when evaluating multiple decorators on a single declaration in TypeScript:
The expressions for each decorator are evaluated top-to-bottom. The results are then called as functions from bottom-to-top. If we were to use decorator factories, we can observe this evaluation order with the following example:
Which would print this output to the console: