Als Antwort auf diese Frage gibt es viel zu sagen. Dies sind die ersten Gedanken, die mir in den Sinn kamen:
Denken Sie in erster Linie daran, dass dies privatenur ein Konstrukt zur Kompilierungszeit ist - es kann zur Laufzeit nicht erzwungen werden (siehe hier und hier für relevante Diskussionen). Bitte entbinden Sie sich daher von jeglichen Vorstellungen private, aus Sicherheitsgründen in irgendeiner Weise nützlich zu sein. Darum geht es einfach nicht.
Es ist etwa Verkapselung, und wenn Sie ein Feld oder eine Methode auf Ihrer Komponente haben , dass Sie darin einzukapseln wollen, so dass es klar , dass es nicht von anderswo zugegriffen werden soll, dann sollte man unbedingt machen private: Das ist , was privateist für: Es signalisiert Ihre Absicht, dass alles, was Sie angezogen haben, nicht von außerhalb der Klasse berührt werden sollte.
Das Gleiche gilt für public: Es handelt sich ebenfalls um ein Konstrukt nur zur Kompilierungszeit. Die Tatsache, dass Klassenmitglieder publicstandardmäßig true sind, hat zur Laufzeit genau null Bedeutung. Wenn Sie jedoch ein Mitglied haben, das Sie ausdrücklich als Teil der API Ihrer Klasse der Außenwelt aussetzen möchten, sollten Sie es unbedingt schaffen public, diese Absicht zu signalisieren: Dafür publicist es da.
Dies gilt alles für Typescript im Allgemeinen. Insbesondere in Angular gibt es definitiv gültige Anwendungsfälle für öffentliche Mitglieder in Komponentenklassen: Zum Beispiel bei der Implementierung des Container- / Komponentenmusters (auch bekannt als smart / dumm ), bei dem "dumme" Kinder "intelligente" Eltern über die Konstruktorinjektion injizieren, Es ist äußerst wichtig, dass Sie Ihre Absicht darüber mitteilen, welche Mitglieder der Eltern von den Kindern berührt werden sollen und welche nicht: Seien Sie ansonsten nicht überrascht, wenn Sie diese dummen Kinder im Schnapsschrank ihrer Eltern herumalbern sehen.
Also meine Antwort auf Ihre Frage:
sollte ich für alle wie unten immer privat hinzufügen?
ist ein nachdrückliches Nein . Sie sollten nicht immer hinzufügen, privateweil Sie damit den Zweck des Schlüsselworts zunichte machen, da es keine Absicht mehr signalisiert, wenn Sie es überall platzieren: Sie können es genauso gut nirgendwo platzieren.