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)
目录
相关文章
|
SQL 存储 分布式数据库
bigdata-28-HBase基本调优策略
bigdata-28-HBase基本调优策略
270 0
|
消息中间件 分布式计算 算法
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
165 5
大数据-63 Kafka 高级特性 分区 副本机制 宕机恢复 Leader选举
|
10月前
|
前端开发 容器
CSS 居中技术完全指南:从基础到高级应用
本文详细介绍了 CSS 中常用的居中方法,涵盖水平居中、垂直居中及同时实现两者的方法。
729 12
|
11月前
|
XML JSON 缓存
阿里巴巴商品详情数据接口(alibaba.item_get) 丨阿里巴巴 API 实时接口指南
阿里巴巴商品详情数据接口(alibaba.item_get)允许商家通过API获取商品的详细信息,包括标题、描述、价格、销量、评价等。主要参数为商品ID(num_iid),支持多种返回数据格式,如json、xml等,便于开发者根据需求选择。使用前需注册并获得App Key与App Secret,注意遵守使用规范。
|
Perl
sed打印特定行
sed打印特定行
530 4
|
移动开发 前端开发
ruoyi-nbcio-plus基于vue3的flowable的支持自定义业务流程处理页面detail.vue的升级修改
ruoyi-nbcio-plus基于vue3的flowable的支持自定义业务流程处理页面detail.vue的升级修改
374 0
|
存储 开发者 Python
高阶Python|返回类型提示技巧 (1)
高阶Python|返回类型提示技巧 (1)
高阶Python|返回类型提示技巧 (1)
|
JavaScript 前端开发 Go
JavaScript高级笔记-coderwhy版本(二)
JavaScript高级笔记-coderwhy版本
460 0
JavaScript高级笔记-coderwhy版本(二)
|
JavaScript 前端开发 Java
JavaScript高级笔记-coderwhy版本(一)
JavaScript高级笔记-coderwhy版本
411 0
JavaScript高级笔记-coderwhy版本(一)
|
JavaScript 前端开发 Dart
JavaScript高级笔记-coderwhy版本(三)
JavaScript高级笔记-coderwhy版本
209 0
JavaScript高级笔记-coderwhy版本(三)