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