В ответ на этот вопрос есть что сказать, это первые мысли, которые пришли мне в голову:
Прежде всего, имейте в виду, что private
это конструкция только во время компиляции - она не может быть применена во время выполнения (см. Здесь и здесь для соответствующего обсуждения). Таким образом, пожалуйста, избавьтесь от любых представлений о том, private
что это может быть полезно в целях безопасности. Дело не в этом.
Речь идет об инкапсуляции, и когда у вас есть поле или метод в вашем компоненте, который вы хотите инкапсулировать в нем, давая понять, что к нему нельзя обращаться из другого места, тогда вы обязательно должны это сделать private
: вот для чего private
: Это сигнализирует о вашем намерении не трогать то, что вы его надели, извне.
То же самое касается public
: это тоже конструкция, предназначенная только для времени компиляции, поэтому тот факт, что члены класса public
по умолчанию, пока истинны, имеет ровно нулевое значение во время выполнения. Но если у вас есть член, который вы явно намереваетесь предоставить внешнему миру как часть API вашего класса, вы обязательно должны сделать так, public
чтобы он сигнализировал об этом намерении: вот для чего public
.
Все это применимо к Typescript в целом. В частности, в Angular есть определенно допустимые варианты использования общедоступных членов в классах компонентов: например, при реализации шаблона контейнер / компонент (он же умный / тупой ) с «тупыми» дочерними элементами, вводящими «умных» родителей посредством внедрения конструктора, Чрезвычайно важно сообщить о своем намерении относительно того, какие члены родителя должны и не должны касаться детей: в противном случае не удивляйтесь, когда вы поймаете, что эти тупые дети дурачатся в винном шкафу своих родителей.
Итак, мой ответ на ваш вопрос:
должен ли я всегда добавлять приват для всех, как показано ниже?
категорически нет . Вы не должны всегда добавлять, private
потому что, поступая так, вы нарушаете цель ключевого слова, потому что оно больше не сигнализирует о каком-либо намерении, если вы помещаете его повсюду: с таким же успехом вы можете не помещать его никуда.