TypeScript装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上,是一种在不改变原类和使用继承的情况下,动态地扩展对象功能,本质也不是什么高大上的结构,就是一个普通的函数,@expression 的形式其实是Object.defineProperty的语法糖。
expression 求值后必须也是一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入
应用场景
我们可以借助装饰器的一个特性,除了可以提高可读性之外,我们还可以针对已经存在的类,在不改变原有代码情况下对原来功能进行扩展