Bug背景
Angular项目。
在html中写了下面这一句
<li (click)=changeActive(1) [class.active]="isActive === 1">
export class MenuComponent implements OnInit {
isActive: Numer = 1;
ngOnInit() { }
}
随即[class.active]="isActive === 1"
就飘红。鼠标浮在上面,显示了下图的提示:
原因分析
郊区英语翻译一波: 期望的操作数应保持类型一致,或设置type为any(TS语法)
但,事实上,这里的1
是Number类型,而isActive我也设置了Number类型,明明他们就是一致的阿!!!
为什么就红了呢???
解决方法
- 方法一:给isActive设为any类型
- 方法二:直接给isActive设置一个默认值,而不设置类型