位置:首页 > web前端 > typescript

typescript装饰器执行顺序

dearweb 发布:2021-08-01 17:52:31阅读:

typescript装饰器执行顺序:属性 -> 方法 -> 方法参数 -> 类,闲话不多说,上代码

function logClass1(params:string){
        return function(target:any){
            console.log('类装饰器1')
        }
    }
    function logClass2(params:string){
        return function(target:any){
            console.log('类装饰器2')
        }
    }
    function logAttribute(params?:string){
        return function(target:any,attrName:any){
            console.log('属性装饰器')
        }
    }
    function logMethod(params?:string){
        return function(target:any,attrName:any,desc:any){
            console.log('方法装饰器')
        }
    }
    function logParams1(params?:string){
        return function(target:any,attrName:any,desc:any){
            console.log('方法参数装饰器1')
        }
    }
    function logParams2(params?:string){
        return function(target:any,attrName:any,desc:any){
            console.log('方法参数装饰器2')
        }
    }
    @logClass1('wuhan.com')
    @logClass2('wuhan.com2')
    class HttpClient {
        @logAttribute()
        public url:any| undefined
        constructor() {
        }
        @logMethod()
        getData(uuid:any){
               return true 
        }
        setData(@logParams1() attr1:any,@logParams2() attr2:any){

        }
    }
    let http =new HttpClient(); 
属性装饰器
方法装饰器
方法参数装饰器2
方法参数装饰器1
类装饰器2
类装饰器1

如果有多个同样的装饰器,会先执行后面的。

24人点赞 返回栏目 提问 分享一波

小礼物走一波,支持作者

还没有人赞赏,支持一波吧

留言(问题紧急可添加微信 xxl18963067593) 评论仅代表网友个人 留言列表

暂无留言,快来抢沙发吧!

本刊热文
网友在读
手机扫码查看 手机扫码查看