Há muito a dizer em resposta a esta pergunta, estes são os primeiros pensamentos que me vieram à mente:
Em primeiro lugar, tenha em mente que private
é apenas uma construção de tempo de compilação - ela não pode ser imposta em tempo de execução (veja aqui e aqui uma discussão relevante). Como tal, por favor, desligue-se de quaisquer noções deprivate
ser útil de alguma forma para fins de segurança. Simplesmente não é disso que se trata.
Ele é cerca de encapsulamento, e quando você tem um campo ou método na sua componente que você deseja encapsular nela, deixando claro que ele não deve ser acessado a partir de qualquer outro lugar, então você deve absolutamente torná-lo private
: isso é o que private
é para: Sinaliza sua intenção que tudo o que você colocou não deve ser tocado de fora da classe.
O mesmo vale para public
: ele também é uma construção apenas em tempo de compilação, então o fato de que os membros da classe são public
por padrão, embora verdadeiro, tem significado exatamente zero em tempo de execução. Mas quando você tem um membro que pretende explicitamente expor ao mundo externo como parte da API de sua classe, você deve com certeza torná-lo public
para sinalizar esta intenção: É para isso que public
serve.
Tudo isso é aplicável ao Typecript em geral. Especificamente em Angular, há casos de uso definitivamente válidos para ter membros públicos em classes de componentes: Por exemplo, ao implementar o contêiner / componente (também conhecido como inteligente / burro padrão de ), com crianças "burras" injetando pais "inteligentes" por meio de injeção de construtor, é extremamente importante comunicar sua intenção sobre o que os membros do pai devem e não devem ser tocados pelos filhos: Do contrário, não se surpreenda quando pegar essas crianças idiotas brincando no armário de bebidas de seus pais.
Então, minha resposta à sua pergunta:
devo sempre adicionar privado para todos eles como abaixo?
é um enfático não . Você nem sempre deve adicionar private
porque, ao fazer isso, você anula o propósito da palavra-chave, porque ela não sinaliza mais nenhuma intenção se você colocá-la em qualquer lugar: você pode muito bem não colocá-la em qualquer lugar.