Если вам не нужно.
Отказ от ответственности. Написание этой статьи осуществлялось при поддержке ChatGPT. Новсе изложенные факты лично проверены, приведены ссылки и верны. Были применены тяжелые ручные добавления/перезаписи.
Как разработчик интерфейса, вы, вероятно, сталкивались с постоянным вопросом в сообществе TypeScript: нужны ли точки с запятой? 🤷♂️ Хотя мнения могут различаться, есть веские аргументы в пользу их исключения из вашего кода. В этом сообщении блога мы рассмотрим причины, по которым точки с запятой не нужны в TypeScript, сосредоточив внимание на автоматической вставке точек с запятой (ASI), историческом контексте использования точек с запятой в языках программирования и влиянии точек с запятой на код. раздуваться. Давайте погрузимся! 🏊♀️
Автоматическая вставка точки с запятой (ASI) в TypeScript
Автоматическая вставка точки с запятой или ASI — это функция ECMAScript и, соответственно, TypeScript. ASI позволяет автоматически вставлять точки с запятой в ваш код во время выполнения, что делает их использование необязательным во многих случаях.
Спецификация ECMAScript (https://262.ecma-international.org/13.0/#sec-rules-of-automatic-semicolon-insertion) подробно описывает правила для ASI. Вот краткое изложение трех основных правил:
- Когда строка заканчивается токеном, за которым не может следовать токен на следующей строке, вставляется точка с запятой.
- Когда встречается закрывающая фигурная скобка ('}'), вставляется точка с запятой, если это позволяет синтаксис.
- В конце входного потока вставляется точка с запятой, если без нее программа была бы синтаксически некорректной.
Примеры АСИ в действии
Рассмотрим следующий код TypeScript:
let x = 10 let y = 20 console.log(x + y)
Даже без точек с запятой этот код отлично работает благодаря ASI:
let x = 10; let y = 20; console.log(x + y);
ASI автоматически вставляет точки с запятой там, где это необходимо, позволяя разработчикам писать код без необходимости их явного включения. 🎉 Это означает; В вашем редакторе они опущены. Но после компиляции (в вашем index.bundle.js) они добавляются. Просто как тот.
Точки с запятой как артефакты старых языков программирования
Точки с запятой впервые были использованы в Алголе 58, который быстро перешел в Алгол 60 (Алгол 60 (baylor.edu)). Использование точки с запятой аналогично ее использованию в английском языке; он используется как разделитель для независимых утверждений.
Взгляните на следующий отрывок из Алгол 60 (baylor.edu):
BEGIN COMMENT ////////////////////////////////////////////////////////// // Name: Peter M. Maurer // Program: Sieve of Eratosthenes // Due: Never // Language: Algol 60 ////////////////////////////////////////////////////////// ; COMMENT define the sieve data structure ; INTEGER ARRAY candidates[0:1000]; INTEGER i,j,k; COMMENT 1000 to protect against strict evaluation of AND ; FOR i := 0 STEP 1 UNTIL 1000 DO BEGIN COMMENT everything is potentially prime until proven otherwise ; candidates[i] := 1; END; ... WHILE k < 1000 DO BEGIN candidates[k] := 0; j := j + 1; k := j*i; END; COMMENT advance to the next candidate ; i := i+1; END END; COMMENT all uncrossed-out numbers are prime (and only those numbers) ; COMMENT print all primes ; FOR i := 0 STEP 1 UNTIL 999 DO BEGIN IF candidates[i] # 0 THEN BEGIN write(1,i); text(1," is prime*N") END END; END FINISH
Использование точек с запятой упростило компиляторам анализ и интерпретацию кода. По мере развития языков программирования они начали принимать более удобочитаемый синтаксис, отходя от явных разделителей операторов, таких как точка с запятой. Современные языки, такие как Python и Go, являются примерами этой тенденции.
TypeScript — это надмножество JavaScript, которое, в свою очередь, основано на ECMAScript. Хотя использование точки с запятой стало необязательным благодаря ASI, историческое влияние старых языков программирования все еще заметно в TypeScript.
Лишние символы в коде
Точки с запятой могут сделать код менее кратким, добавляя ненужные символы. В результате раздувание кода может отрицательно сказаться на удобочитаемости и обслуживании.
В сообществе разработчиков наблюдается растущая тенденция к более чистым и минималистичным стилям кода. Современные руководства по стилю кода, такие как Руководство по стилю JavaScript от Airbnb, часто рекомендуют использовать точки с запятой, когда это необходимо. С потенциальными обновлениями ASI расположение точек с запятой со временем изменится или станет более сложным. Таким образом, может быть целесообразно позволить компилятору решить, куда его поместить. Это не только улучшает эстетику кода, но и согласуется с эволюцией языков программирования в сторону более удобочитаемого синтаксиса.
Давайте сравним два примера TypeScript — один с точкой с запятой и один без:
С точкой с запятой:
function add(a: number, b: number): number { let result = a + b; return result; }; let sum = add(1, 2); console.log(sum);
Без запятых:
function add(a: number, b: number): number { let result = a + b return result } let sum = add(1, 2) console.log(sum)
Оба примера работают правильно, но вариант без точек с запятой более лаконичен и, возможно, легче читается. 🧐
Что это значит?
В этом сообщении блога мы рассмотрели причины, по которым ручная расстановка точек с запятой не нужна в TypeScript. Мы обсудили, как ASI автоматически вставляет точки с запятой, когда это необходимо, историю точек с запятой как артефакты старых языков программирования и влияние точек с запятой на раздувание кода.
Как разработчик внешнего интерфейса, вы можете включать или опускать точку с запятой в коде TypeScript. Хотя личные предпочтения играют роль в этом решении, стоит рассмотреть преимущества отказа от использования точки с запятой, такие как более чистый код и улучшенная читаемость. Кроме того, при работе в общей кодовой базе рекомендуется адаптироваться к существующему стилю. Такие плагины, как Prettier, могут помочь в обеспечении соблюдения таких правил.
В конечном счете, выбор за вами, но почему бы не попробовать TypeScript без точек с запятой? Возможно, вы обнаружите, что вам нравится более чистый и современный стиль. 🥳