typescript类装饰器

Posted kaiqinzhang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typescript类装饰器相关的知识,希望对你有一定的参考价值。

//类装饰器(无法传参)
function logClass(params:any){//params就是当前的类
    console.log(params)
    params.prototype.apiUrl = 动态扩展的属性;
    params.prototype.run = function(){
        console.log(我是一个run方法);
    }
}


@logClass//后面不可以加分号
 class  HttpClient{
     constructor(){

     }

     getData():void{
        console.log(11)
     }
 }

 let http:any = new HttpClient();
 console.log(http.apiUrl);
 http.run();



//类装饰器(可以传参,装饰器工厂)

function decoClass(params:string){
    return function(target:any){
        console.log(target);//类Client
        console.log(params);//传进来的参
        target.prototype.apiUrl = params;
    }
}


@decoClass(hello)//后面不可以加分号
 class  Client{
     constructor(){

     }

     getData(){

     }
 }

 let client:any = new HttpClient();
 console.log(client.apiUrl)

 

以上是关于typescript类装饰器的主要内容,如果未能解决你的问题,请参考以下文章

08_TypeScript装饰器

TypeScript(21): 装饰器

typescript 装饰器

您可以将带有装饰器的 Typescript 类导出为普通类(没有装饰器)吗?

使用Typescript和类组件装饰器时如何在Vue Router中传递props

从0开始的TypeScriptの十二:装饰器