美文网首页
装饰器实验

装饰器实验

作者: Nick_4438 | 来源:发表于2022-10-23 16:51 被阅读0次

装饰器实验

说明

ts内包含了四个装饰器,类装饰器、属性装饰器、函数装饰器、参数装饰器,本文中测试一下其的使用。

准备工作

  • 需要先安装nodejs
  • 安装ts支持npm i -s -g tsc
  • 安装ts-nodenpm i-s -g ts-node
  • 创建文件夹编写代码测试
mkdir test
cd test 
touch index.ts

编写代码

类装饰器ClassDecorator

const doc: ClassDecorator =(target: any)=>{
    // 不破坏原有的类给他添加一些属性
    console.log(target)
    target.prototype.name="张三"
}


@doc
class Student{
    constructor(){

    }
}

// doc(Xiaoman)
// const s1:any = new Student()
// console.log(s1.name)

``ts-node .\index.js

属性装饰器PropertyDecorator

const doc: PropertyDecorator =(target: any,key:string|symbol)=>{
    // 这时候target指向对象,key指向属性
    console.log(target,key)
}

class Student{
    @doc
    public name: string
    constructor(){
        this.name='李四'
    }
}

方法装饰器MethodDecorator

const doc: MethodDecorator =(target: any,key:string|symbol,descriptor:any)=>{
    // 这时候target指向对象,key指向函数,descriptor指向对象描述符
    console.log(target,key,descriptor)
}



class Student{
   
    public name: string
    constructor(){
        this.name='李四'
    }
    @doc
    getName(){

    }
}

// doc(Xiaoman)
// const s1:any = new Student()
// console.log(s1.name)

参数装饰器````

const doc: ParameterDecorator =(target: any,key:string|symbol,index:any)=>{
    // 这时候target指向对象,key指向函数,index索引(0开始)
    console.log(target,key,index)
}



class Student{
   
    public name: string
    constructor(){
        this.name='李四'
    }
   
    getName(@doc name:string ,  address: string){

    }
}

// doc(Xiaoman)
// const s1:any = new Student()
// console.log(s1.name)

相关文章

  • 装饰器实验

    装饰器实验 说明 ts内包含了四个装饰器,类装饰器、属性装饰器、函数装饰器、参数装饰器,本文中测试一下其的使用。 ...

  • 装饰器

    """@装饰器- 普通装饰器- 带参数的装饰器- 通用装饰器- 装饰器装饰类- 内置装饰器- 缓存装饰器- 类实现...

  • typescript 五种装饰器

    装饰器类型 装饰器的类型有:类装饰器、访问器装饰器、属性装饰器、方法装饰器、参数装饰器,但是没有函数装饰器(fun...

  • python——装饰器详解

    一、装饰器概念 1、装饰器 装饰器:一种返回值也是一个函数的函数,即装饰器。 2、装饰器目的 装饰器的目的:装饰器...

  • Python装饰器

    Python装饰器 一、函数装饰器 1.无参装饰器 示例:日志记录装饰器 2.带参装饰器 示例: 二、类装饰器 示例:

  • Python中的装饰器

    Python中的装饰器 不带参数的装饰器 带参数的装饰器 类装饰器 functools.wraps 使用装饰器极大...

  • 装饰器

    装饰器 decorator类装饰器 带参数的装饰器 举例(装饰器函数;装饰器类;有参与无参) https://fo...

  • TypeScript装饰器

    前言 装饰器分类 类装饰器 属性装饰器 方法装饰器 参数装饰器需要在tsconfig.json中启用experim...

  • python之装饰器模版

    装饰器的作用:装饰器即可以装饰函数也可以装饰类。装饰器的原理:函数也是对象 1.定义装饰器 2.使用装饰器假设de...

  • python3基础---详解装饰器

    1、装饰器原理 2、装饰器语法 3、装饰器执行的时间 装饰器在Python解释器执行的时候,就会进行自动装饰,并不...

网友评论

      本文标题:装饰器实验

      本文链接:https://www.haomeiwen.com/subject/jmwizrtx.html