当前位置:网站首页>小满nestjs(第三章 前置知识装饰器)
小满nestjs(第三章 前置知识装饰器)
2022-08-09 18:40:00 【小满zs】
1、什么是装饰器
装饰器是一种特殊的类型声明,他可以附加在类,方法,属性,参数上面
装饰器写法 tips(需要开启一项配置)
类装饰器 主要是通过@符号添加装饰器
他会自动把class的构造函数传入到装饰器的第一个参数 target
然后通过prototype可以自定义添加属性和方法
function decotators (target:any) {
target.prototype.name = '小满'
}
@decotators
class Xiaoman {
constructor () {
}
}
const xiaoman:any = new Xiaoman()
console.log(xiaoman.name)
属性装饰器
同样使用@符号给属性添加装饰器
他会返回两个参数
1.原形对象
2.属性的名称
const currency: PropertyDecorator = (target: any, key: string | symbol) => {
console.log(target, key)
}
class Xiaoman {
@currency
public name: string
constructor() {
this.name = ''
}
getName() {
return this.name
}
}
参数装饰器
同样使用@符号给属性添加装饰器
他会返回两个参数
1.原形对象
2.方法的名称
3.参数的位置从0开始
const currency: ParameterDecorator = (target: any, key: string | symbol,index:number) => {
console.log(target, key,index)
}
class Xiaoman {
public name: string
constructor() {
this.name = ''
}
getName(name:string,@currency age:number) {
return this.name
}
}
方法装饰器
同样使用@符号给属性添加装饰器
他会返回两个参数
1.原形对象
2.方法的名称
3.属性描述符 可写对应writable,可枚举对应enumerable,可配置对应configurable
const currency: MethodDecorator = (target: any, key: string | symbol,descriptor:any) => {
console.log(target, key,descriptor)
}
class Xiaoman {
public name: string
constructor() {
this.name = ''
}
@currency
getName(name:string,age:number) {
return this.name
}
}
边栏推荐
- Office 365 Group概述以及创建方法
- Pytorch 固定部分参数训练
- WPF 实现带蒙版的 MessageBox 消息提示框
- laravel 时区问题timezone
- 环境:Flink版本:1.15.1jar包:flink-sql-connector-oracle
- AttributeError: module ‘click‘ has no attribute ‘get_os_args‘
- [免费专栏] Android安全之Root检测和绕过(浅析)
- vim编辑器使用
- Intensive reading of the paper: VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
- 时序攻击
猜你喜欢
新起之秀 DPU,正在掀起数据中心变革!
poj 1182 食物链(带权并查集)
开源一夏 | 基于若依架构的列表详情展示
[免费专栏] Android安全之Android Studion 动态调试APK的两种方法
How to stop the test after reaching a given number of errors during stress testing in JMeter
《痞子衡嵌入式半月刊》 第 60 期
Codesys结构变量编程应用(STRUCT类型)
重磅!上海985教授当选!全球仅4人!
[免费专栏] Android安全之Android工程模式
Samsung's flagship discount is 1,800, Apple's discount is over 1,000, and the domestic flagship is only reduced by 500 to send beggars
随机推荐
华为云全流程护航《流浪方舟》破竹首发,打造口碑爆款
毕昇编译器优化:Lazy Code Motion
Intensive reading of the paper: VIT - AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
grafana docks local ldap
[Free column] Xposed plug-in development for Android security [from scratch] tutorial
2022深圳(软考高级)信息系统项目管理师认证报名
2022.08.05_每日一题
ebook download | "Business executives' IT strategy guide - why enterprises should implement DevOps"
为什么数字钱包需要引入小程序生态
一图详解沃土云创计划高校教师参与全流程
Office 365 Group概述以及创建方法
Paper sharing: "FED BN" uses the LOCAL BATCH NORMALIZATION method to solve the Non-iid problem
Openharmony Lightweight System Experiment--GPIO Lighting
[免费专栏] Android安全之Android奇淫run-as命令
hdu 2647 Reward(拓扑排序)
英赛克工控安全项目入围《钢铁行业智能制造解决方案推荐目录》
MFC教程
laravel 时区问题timezone
[Free Column] Android Security for Peace Elite (FZ) APK Reverse Analysis
vim编辑器使用