Точка с запятой в JavaScript/TypeScript: за и против
Нельзя просто так взять и поменять свои привычки. Рассказываем, почему существуют две точки зрения на проблему точек с запятой в JavaScript.
11К открытий11К показов
Необходимость использования точки запятой в JavaScript и ему подобных языках это предмет горячих обсуждений. В этой статье я попытаюсь разобрать все плюсы и минусы использования точки с запятой.
ASI (Автоматическая вставка точки с запятой)
Использование точки с запятой в JavaScript необязательно благодаря существованию ASI. TypeScript также использует ASI. Однако, ASI не всегда отрабатывает правильно, и есть несколько ситуаций, когда пропуск точки с запятой приведет к неожиданной ошибке выполнения.
В JavaScript есть несколько тупиковых случаев, которые устраняются системой типов TypeScript. Например:
Массив цветов будет интерпретирован как выражение с запятой. В JS это вызовет ошибку времени выполнения — «Uncaught TypeError: Cannot read property ‘blue’ of undefined”». В TS ошибка произойдет ещё на стадии компиляции — «Left side of comma operator is unused and has no side effects».
Есть ещё один подобный пример. В этом случае ошибка возникнет в обоих языках только во время выполнения:
Если вы пользуетесь линтером, то флаг no-unexpected-multiline позволит обнаружить такие ошибки на этапе компиляции.
Причины использовать точку с запятой
- Привычка — зачем что-то менять, если и так всё устраивает.
- Разные языки программирования — проще придерживаться схожих принципов на разных языках.
- Читаемость — это дело вкуса.
- Избавление от неоднозначностей.
- Нежелание пользоваться линтером.
Причины не использовать точку с запятой
- Лишний символ — экономия времени и места.
- Код становится чище.
- Легче попадать мышью в конец строки.
- Линтер — позволяет выявлять ошибки на стадии компиляции.
- Новичкам проще не отвлекаться на точку с запятой.
- Больше никаких warning`ов об отсутствии точки с запятой (особенно при переходе с языка, который их не использует).
- Использование точки с запятой в JavaScript и TypeScript полностью не избавляет от неоднозначных ситуаций.
Читайте нашу статью о том, как пользоваться линтером и другими подобными средствами.
А вы ставите точку с запятой?
Конечно;
Нет
11К открытий11К показов