Для всех понятий, которые поддерживают модификаторы доступа, такие как поля, свойства, методы и классы, которые имеют доступ к модификаторам, если они не указаны?Какие модификаторы доступа подразумеваются, если они не указаны?
ответ
Все, что находится в class
, равно public
, если не указано. Все в module
является закрытым, если не используется ключевое слово export
.
Для людей, играющих с стартером. Некоторые из них поставляются с tslint, и это может стать очень запутанным. Когда вы видите это сообщение 'default access modifier on member/method not allowed ' Проверьте' tslint.json', чтобы разрешить модификатор доступа по умолчанию или подразумеваемый. – visheshd
Я не согласен, что
Все в классе является публичным, если не указано.
Все публично, даже если используется частный. Просто посмотрите на преобразованный код. Частные аннотированные методы будут доступны общественности. Только переполнение вызовет ошибки. Как государственные, так и частные будут преобразованы в <Object>.prototype.funcName
Да, это хороший момент. Однако мой вопрос заключался в том, «какие модификаторы доступа подразумеваются, если они не указаны», а не «может ли доступ к моему коду, когда модификатор доступа не указан». Модификаторы доступа - это концепция TypeScript, а не концепция JavaScript. Поэтому я думаю, что ответ @ basarat ответил на то, что я имел в виду в вопросе, и кажется правильным в контексте вопроса. Возможно, есть место для устранения разногласий в вопросе и ответе. – Sam
Вот как работает TS, он будет компилировать ваш код независимо от того, является ли он «правильным» с точки зрения TS, это подразумевает все в TS без исключения для классов, но главное, если вы уважаете TS-предупреждения - t доступ к свойствам, помеченным как закрытый. –
- 1. Какие модификаторы доступа могут применяться к классу?
- 2. Какие модификаторы доступа разрешены для защищенных методов
- 3. Модификаторы доступа
- 4. Модификаторы контроля доступа в местных классах - почему они не работают?
- 5. Какие расширения langugage подразумеваются Haskell2010 в ghc?
- 6. Модификаторы доступа с интерфейсами
- 7. Алиасные типы в Go можно присваивать, если они не указаны?
- 8. ехЬегп модификаторы доступа не работают
- 9. Модификаторы доступа и несколько сборок
- 10. Модификаторы доступа ... Почему?
- 11. Модификаторы Java-доступа
- 12. Модификаторы доступа в C#
- 13. Почему все контексты выполняются, если они не указаны при обновлении?
- 14. модификаторы доступа в Java
- 15. Наследует модификаторы доступа?
- 16. C# - модификаторы доступа класса
- 17. Модификаторы доступа в javascript
- 18. Модификаторы доступа EventInfo
- 19. Класс-члены модификаторы доступа
- 20. Зачем использовать модификаторы доступа
- 21. Практические модификаторы доступа
- 22. Модификаторы доступа и наследование C#
- 23. модификаторы доступа Java по умолчанию
- 24. {get; set;} и модификаторы доступа
- 25. публичные и частные модификаторы доступа
- 26. Восстановление модификаторы доступа после макро
- 27. модификаторы доступа C# - внутренний модификатор
- 28. DataTemplateSelector ошибка: Не удается изменить модификаторы доступа
- 29. Невозможно найти библиотеки Eclipse, даже если они указаны как зависимость
- 30. Python - добавление условий, если только они указаны (домен)?
Эй, сэм. Можете ли вы пометить как ответ, чтобы он не остался в оставшейся без очереди очереди – basarat
@basarat, это было давно, так как я использовал TypeScript, поэтому трудно запомнить, как это работает в наши дни! Насколько я помню, ваш ответ выглядел разумным, но я не чувствовал, что это достаточно авторитетно для меня, чтобы отметить его как правильное. Является ли ваш ответ основанным на вашем опыте работы с языком, или он зависит от информации в спецификациях? – Sam
на основе спецификации https://github.com/Microsoft/TypeScript/blob/master/doc/spec.md – basarat