Синтаксис private
и public
является улучшением для языка javascript для «статического анализа» в машинописи транспортер , я бы порекомендовал вам попробовать площадка как машинописный текстпереносится в JS.Так что, по сути, каждый, кто читает код, может получить представление о том, какова область действия переменных / функций.Примером простой переменной внутри класса будет то, что они оба переносятся в один и тот же JS private var1: number = 0
, а public var1: number = 0
переносят оба в this.var1 = 0
Однако!Могут быть ситуации, когда вы на самом деле хотели бы получить доступ к @ViewChild из родительского компонента, но в этой ситуации вы должны указать его как @ViewChild(HelloComponent) public helloComponent;
, иначе вы получите ошибку «compile / transpile».Если вы хотите дать более четкое представление о том, где будет находиться область действия, оставьте его как private
и вместо этого используйте методы получения / установки следующим образом:
export class MyComponent {
@ViewChild(HelloComponent) private _helloComponent;
get helloComponent(): any {
return _helloComponent;
}
set helloComponent(set: any) {
this._helloComponent = set;
}
}