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设置一个默认值,而不设置类型
探讨了在Angular项目中,使用HTML模板时遇到的类型检查错误。具体问题是在使用[class]绑定时,尽管isActive变量和数值1都是Number类型,仍会触发类型错误。文章分析了错误原因,并提供了两种解决方案:将变量类型设为any或直接设置默认值。

1757

被折叠的 条评论
为什么被折叠?



