装饰器:就是一个方法,可以注入到类,方法,属性参数上来扩展类,方法,参数的功能。
装饰器写法:普通装饰器(无法传参)、装饰器工厂(可传参)
普通装饰器
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();