«Содержи свою комнату в чистоте каждый день, и мне не придется заставлять тебя убирать ее!» Если вы не были идеальным маленьким ангелочком, который всегда содержал свою комнату в чистоте, это, вероятно, было знакомым утверждением, которое вы слышали от своей матери. Концепция настолько проста, даже для ребенка, но практика намного сложнее. Большую часть времени вы просто не хотели тратить дополнительное время на поддержание чистоты в своей комнате и предпочитали делать ЧТО-НИБУДЬ еще. Но, тем не менее, несколько раз, когда вы поддерживали порядок в своей комнате и получали комплименты от мамы, папы или даже друга, вы должны признать, что это всегда было здорово. И с течением времени вы становились все лучше и лучше в содержании вещей в чистоте. Миссия выполнена для вашей милой мамы. Теперь, если бы у меня была мать, которая помогала бы содержать мой код в чистоте!

Для новых программистов JavaScript, таких как я, поддержание чистоты кода может быть столь же хлопотным, как поддержание чистоты в комнате, когда вы были ребенком. Javascript не является статически типизированным языком, что означает, что типы данных оцениваются во время выполнения. Из-за этого JavaScript может быстро выйти из-под контроля, если вы переопределяете переменные в своем коде. Вы можете случайно переопределить строковый тип в числовой, написать больше кода, а затем не столкнуться с проблемой, пока не попытаетесь запустить код позже. Есть несколько вещей, которые раздражают больше, чем обнаружение ошибки, в которой говорится, что «undefined» не является функцией». Это заставит вас спросить себя ЧТО? ГДЕ? КОГДА? но не будет ответа от инструментов разработчика или вашего терминала. Однако, к счастью для нас, существует надмножество JavaScript под названием TypeScript, которое действует как мама и помогает вам поддерживать код в порядке, прежде чем он выйдет из-под контроля.

Давайте посмотрим на пример:

Вот в чем проблема. Всего в 10 строках кода мы видим, что одни и те же переменные сменили тип 3 раза! В первом примере тип x — это число, а y — «неопределенное». Затем они оба переопределяются как строковые типы. И тогда, наконец, оба становятся булевыми. Было бы неплохо, если бы вы могли установить тип и получить напоминание о том, что вы совершаете эти потенциально катастрофические ошибки? Вот тут-то и приходит на помощь TypeScript (также известный как мама-программист).

В приведенном выше примере у нас есть стандартная функция hogwarts, которая принимает интерфейс «человек» и возвращает приветственное сообщение с полным именем. Однако вы можете видеть, что в строке 15 есть предупреждение! Это предупреждение «Тот, кого нельзя называть» выдается, потому что его тип — строка, а не соответствующий интерфейс, определенный в строках 5, 18–21. Это пример того, как TypeScript может подтолкнуть вас в правильном направлении. Здесь вы можете легко увидеть, что что-то не так с тем, что передается в функцию Хогвартса. Если бы вы не получили эту ошибку, вы могли бы легко запутаться позже, когда попытаетесь запустить свой код, и вы понятия не имеете, что отправили неправильный тип в функцию Хогвартса.

Еще один классный помощник, который предоставляет вам TypeScript, заключается в том, что он скомпилирует правильный файл для вас в файл js. Я уверен, вы заметили, что в приведенном выше примере имя файла было app.ts. С помощью простой команды в терминале:

tsc app.ts

В этом случае TypeScript создаст файл app.js, который правильно скомпилирован для запуска в вашем коде. Хотя это может показаться небольшой помощью, это исследование, составленное Чжэн Гао из Университетского колледжа Лондона, показывает, что 15% всех ошибок JavaScript могут быть обнаружены с помощью TypeScript.

Я надеюсь, что это введение в TypeScript поможет вам держать вещи в чистоте, как когда-то давала вам ваша мама. Я очень ценю все подталкивания моей мамы на протяжении многих лет, и, поскольку это неделя ее дня рождения, вот фотография моей супер-мамы… С Днем Рождения, мама! И не ругайте меня за грамматические ошибки, пожалуйста. :)