在Angular strict mode下,使用@ViewChild
的常见方式是什么?
例如,当我按照文档中描述的方法编写用于排序Material表格的代码时。
@ViewChild(MatSort) sort: MatSort;
编译器提示:
错误 TS2564: 属性 'sort' 没有初始化程序并且在构造函数中没有明确定义。
作为可能的解决方案,我可以使用
@ViewChild(MatSort, { static: false }) sort!: MatSort;
... 但对我来说,那更像是一种变通方法。
sort?: MatSort
),这样至少在使用之前会检查它是否存在(从而避免错误)。我觉得使用?
或!
并没有什么问题,但使用?
会强制在使用之前对其进行解包,这是有帮助的。 - Chris Gilardi?
可能会导致未定义而不仅仅是null
,因此我无法将其分配给我的数据源排序。 - A. Sa.