Design Patterns

Decorator

É uma função que recebe outra função como parâmetro e estende o seu comportamento sem modificá-la explicitamente
Já tem a proposta para JavaScript: https://github.com/tc39/proposal-decorators
Já está disponível em TypeScript, basta colocar o "@" na frente que já é Decorator: https://www.typescriptlang.org/docs/handbook/decorators.html

References