如果一个ViewChild在模板中没有被引用,将其标记为私有的是否可以?
我已经这样做了,然后使用“--prod”标志进行构建和服务,并且没有遇到任何错误。我目前正在使用Angular 7。
@ViewChild(HelloComponent) private helloComponent;
这是我所说的stackblitz:
https://stackblitz.com/edit/angular-vxbpuk?file=src%2Fapp%2Fapp.component.ts 我认为这个stackblitz使用了aot,但你可以在本地验证相同的事情。
编辑:我之前没有提到,但是有这篇来自Angular文档的简短说明让我感到困惑:
https://angular.io/guide/aot-compiler#phase-2-code-generation 装饰组件类成员必须是公共的。您不能使@Input()属性为私有或内部。
但是,正如@GCSDC在下面指出的那样,Angular团队似乎在他们的示例中使用了私有成员:
https://angular.io/guide/component-interaction#parent-calls-an-viewchild
private
是可以的,但 ES 类中的 #private 字段不行 -- 请参见 https://github.com/microsoft/TypeScript/issues/31670,了解为什么他们保留了两者的大讨论。 - Coderer