03_装饰器

简介: 03_装饰器

这里的装饰器直接上代码了,如果是零基础请看TypeScript笔记中的“装饰器”章节

// 普通类装饰器(不可传参)
const doc: ClassDecorator = (target: any) => {
  console.log(target)
}
@doc
class Xiaoman {
  constructor() {}
}
// 类工厂装饰器(可自由传参)
const docs = (str: string): ClassDecorator => {
  return (target: any): void => {
    console.log(str)
  }
}
@docs('这是一段字符串')
class XiaomanFactory {
  constructor() {}
}
// 属性装饰器(返回构造函数和属性名)
const props: PropertyDecorator = (target: any, key: string | symbol) => {
  console.log(target, key)
}
class XiaomanProperty {
  @props
  public name: string
  constructor() {
    this.name = '小满'
  }
}
// 方法装饰器(返回构造函数、方法名和方法定义)
const method:MethodDecorator = (target: any, propertyKey: string | symbol,descriptor:any) => {
  console.log(target,propertyKey,descriptor);
}
class XiaomanMethod {
  constructor(){}
  @method
  getName(){}
}
// 参数装饰器(返回构造函数、参数名和参数所在位置(从前往后递减))
const param:ParameterDecorator = (target:any,propertyKey: string | symbol,parameterIndex: number) => {
  console.log(target,propertyKey,parameterIndex)
}
class XiaomanParams {
  constructor(){}
  myMethod(@param data:any,@param key:any){}
}
// 装饰器底层实现
class CustomXiaoman {
  constructor(){}
}
const custom = (target:any) => {
  console.log(target)
}
custom(CustomXiaoman)
目录
相关文章
装饰器:装饰器为主,闭包和高阶函数为辅
装饰器:装饰器为主,闭包和高阶函数为辅
|
4月前
|
测试技术 Python
装饰器
【8月更文挑战第1天】
25 2
|
JSON 数据格式
装饰器的实际应用
使用装饰器模式改造slf4j打印json格式日志
770 0
装饰器的实际应用
|
缓存 测试技术 Python
【Python函数式编程】——装饰器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值 也是一个函数对象。 它经常用于有以下场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。
156 0
【Python函数式编程】——装饰器
|
开发者 Python
装饰器详解|学习笔记
快速学习装饰器详解
|
Python
Python编程:decorator装饰器
Python编程:decorator装饰器
131 0
|
设计模式 JavaScript 前端开发
2021你要知道的前端装饰器(Decorator)
2021你要知道的前端装饰器(Decorator)
677 0
|
设计模式 程序员 Python
Python函数装饰器指南
Python 具有强大的功能和富有表现力的语法。我最喜欢的装饰之一。在设计模式的上下文中,装饰器动态更改方法或类功能,而不必直接使用子类。当您需要扩展功能,但不想修改原函数时,这是理想的选择。我们可以在任何地方实现装饰器模式,但是 Python 通过提供更具表现力的功能和语法来促进实现。
131 0

热门文章

最新文章