[7] 装饰器(decorators)

26 阅读1分钟

装饰器:就是一个方法,可以注入到类,方法,属性参数上来扩展类,方法,参数的功能。

装饰器写法:普通装饰器(无法传参)、装饰器工厂(可传参)

普通装饰器

function logClass(params:any){
    console.log(params);  //params 即为 HttpClient类
    params.prototype.apiUrl = 'xxx';
}
// 用@+装饰器名称来表示
@logClass 
class HttpClient {

}
var h:any = new HttpClient();
console.log(h.apiUrl); //xxx

装饰器工程

function logClass(params:string){
    console.log(params);  //params 即为装饰器传入的参数
    return function(target:any){ //target为 HttpClient类
        target.prototype.apiUrl = params;
    }
}
// 用@来表示
@logClass('hello') 
class HttpClient {

}
var h:any = new HttpClient();