只读属性只能在构造函数中赋值,但在 Angular 中,不鼓励并且有时不可能使用构造函数进行某些初始化,而是使用 Angular 钩子 ngOnInit。有没有办法将 ngOnInit 标记为关于 readonly 属性的构造函数,以便我可以将 readonly 用于仅在 ngOnInit 中分配一次的本质上不可变的属性?
编辑:澄清:我不是在寻找替代方法来声明只读属性。我想以常规方式声明它们。我认为其他任何事情都不值得为了获得静态检查而牺牲可读性。我希望会有一些注释,就像 tslint 忽略 ngOnInit 内部的不变性一样。
从到目前为止的答案来看,我想将它们分配为(this as any).foo = bar;
最接近我想做的事情,尽管我想它仍然比仅仅省略只读更难看。