装饰器
方法装饰器
LogComponent组件只为负责打印日志,通过log装饰器修饰printLog方法
1 | export class LogComponent { |
应用场景: 可以在其他组件内继承LogComponent,也可以封装为一个service,服务于各个组件,职责单一1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16export class AppComponent extends LogComponent implements OnInit {
constructor(
private viewContainerRef: ViewContainerRef,
private renderer: Renderer2,
private elementRef: ElementRef,
) {
super();
}
ngOnInit(): void {
this.setupMenus();
this.printLog('test');
}
printLog(str) {
super.printLog(str);
}
}
参数装饰器
1 | @Injectable() |
泛型(Generic)
集合类型如果设置为any可以实现同时支持多种类型,但是放弃了原本支持的类型检查,泛型则是为了解决这一点;帮助进行后面的类型检查
class Name<T>{
sayName(name:T): void{
console.log(' hello, i'm ' + name);
}
}
let user1 = new Name<string>();
user1.sayName('lee');
let user2 = new Name<number>();
user2.sayName(3);