Angular9 debugElement.classes['my-class'] 现在 returns 未定义

Angular9 debugElement.classes['my-class'] now returns undefined

我正在更新一个曾经使用 Angular 8 的存储库。 在使用 TestBed 的测试中,我使用以下方法检查 class 是否存在: fixture.debugElement.classes['my-class'].toBe(false)

更新到 Angular 9 后,此测试不再有效,因为当 class 不存在时表达式不再 returns false,它 return未定义。 我已经使用以下方法修复了测试: fixture.debugElement.classes['my-class'].toBeFalsy() 恐怕还有其他事情无法保持沉默。

检查 Angular 文档,classes 应该只是 return 一个布尔值: classes: { [key: string]: boolean; }

有没有classes会return未定义的情况?

正如 Ivy 文档所说:

DebugElement.classes returns undefined for classes that were added and then subsequently removed (previously, classes added and later removed would have a value of false).

https://angular.io/guide/ivy-compatibility

(我遇到了完全相同的问题,它也破坏了我的一打单元测试)