Skip to main content

Введение в TypeScript

JavaScript изначально создавался, чтобы делать веб-страницы живыми. Из-за простоты его использования, он завоевал популярность и его начали использовать практически на всех платформах. Код JavaScript строится на скриптах, которые по задумке должны быть не большими и быстрыми. Разработчики не задумывались, что на JavaScript будут писать приложения с большим количеством кода. В связи с чем у больших приложений, написанных на JavaScript возникают проблемы. Вот некоторые из них:

  1. Из-за интерпретируемости языка узнать об ошибке можно только после выполнения кода;
  2. Сложность использования практик объектно-ориентированного программирования;
  3. Динамическая типизация.

Для решения таких проблем был создан язык программирования TypeScript.

TypeScript

TypeScript - язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript. TypeScript является обратно совместимым с JavaScript и компилируется в последний. Фактически, после компиляции программу на TypeScript можно выполнять в любом современном браузере или использовать совместно с серверной платформой Node.js. Код на TypeScript выглядит почти так же, как и код на JS, и, если у вас есть опыт frontend-разработки, изучить TypeScript достаточно просто. Особенно учитывая, что вы можете писать JS-код прямо в TS-скриптах.

История

Развитие TypeScript началось в конце 2012 года. Хотя он зародился в компании Microsoft, и его фактическим создателем является программист Андерс Хейлсберг, так же известный как создатель таких языков как Delphi, C#, но данный проект сразу стал развиваться как OpenSource. И уже с самого начала новый язык стал быстро распространяться в силу своей гибкости и производительности. Немало проектов, которые были написаны на JavaScript, стали переноситься на TypeScript. Популярность и актуальность идей нового языка привела к тому, что ряд из этих идей в последующем станут частью нового стандарта JavaScript. А новая версия одного из популярнейших фреймворков для Web - Angular 2/4/5/6 полностью написана на TypeScript совместно компаниями Microsoft и Google.

Преимущества TypeScript

TypeScript приносит множество удобств в мир JavaScript, рассмотрим основные его возможности.

Строгая типизация

TypeScript - это строго типизированный и компилируемый язык программирования. JavaScript - динамически типизированный. Строгая типизация - это один из вариантов политики работы с типами данных, под собой подразумевает выполнение следующих условий:

  • Объект данных всегда имеет строго определенный тип;
  • Переменной может присвоится только строго тот же тип данных, что и переменная;
  • Операции требуют параметры строго определенных типов;
  • Неявное преобразование типов не допускается.

Пример JavaScript:

Live Editor
Result
Loading...

Переменная fruit может быть, как строкой, так числом или функцией. Ошибки не возникает. В строго типизированном языке такой код не пройдёт компиляции.

Пример TypeScript

let fruit: string = 'banana'
fruit = 999
console.log(fruit)

Синтаксис :string перед fruit означает, что переменной назначается тип string (строка). В следующей строке мы ей присваиваем число, что недопустимо.

Компиляция

Одна из неприятностей которую можно встретить при разработке на JavaScript — это опечатка или случайное переопределение глобальной переменной. Что можно обнаружить только на этапе выполнения программы. И это явно не экономит время разработки.

TypeScript при компиляции проверяет код на ошибки, что очевидно ускорит выявление подобных неприятностей.

ООП

TypeScript реализует многие концепции, которые свойственны объектно-ориентированным языкам, как, например, наследование, полиморфизм, инкапсуляция и модификаторы доступа и так далее.

Большие программы

TypeScriptа позволяет быстрее и проще писать большие сложные комплексные программы, соответственно их легче поддерживать, развивать, масштабировать и тестировать, чем на стандартном JavaScript.

OpenSource

TypeScript развивается как OpenSource-проект и, как и многие проекты, хостится на гитхабе. Кроме того, он является кроссплатформенным, а это значит, что для разработки мы можем использовать как Windows, так и MasOS или Linux.

Минусы TypeScript

Разработчики любят этот язык, а некоторые крупные проекты уже переходят на него. Например, популярный фреймворк Angular.JS. Но этого всё равно недостаточно, чтобы он стал таким же востребованным, как JavaScript. Это связано с тем, что разработка веб-приложения на TypeScript стоит дороже и отнимает больше времени.

Особенно если необходимо использовать какую-нибудь библиотеку или фреймворк, которые не портированы на TS. В этом случае разработчикам придётся самостоятельно описывать сигнатуры (указывать типы данных) всех функций и методов — достаточно длительный процесс, учитывая размеры современных библиотек.

Также порог входа в TypeScript выше — чтобы использовать его преимущества, важно знать типы данных и объектно-ориентированное программирование.

Использовать ли TypeScript

Теперь, когда вы знаете о том, что же из себя представляет TypeScript, я попытаюсь сказать в каких случаях нужно, а в каких не стоит его использовать.

Мои доводы очень просты: TypeScript нужно использовать всегда, если вы знаете, что проект будет расти и его нужно будет поддерживать. Переводить ли уже написанные проекты? – точного ответа я вам дать не могу, обычно в таких проектах сложно выкроить время на рефакторинг и уж тем более на переход на TypeScript. Однако, всё же стоит подумать над этим, ведь вы получаете типизацию и возможность использования современных стандартов.

В том случае, если вам заведомо известно, что проект имеет определённые рамки кодовой базы и они малы, то внедрение TypeScript принесёт вам лишь поддержку современных возможностей ECMAScript. Однако помните, что перейти с JavaScript на TypeScript вы можете всегда, а вот наоборот – придётся вручную удалять все типы, либо использовать сгенерированные файлы.

Вопросы

Теперь мы готовы с вами изучать TypeScript, но для того чтобы понять на сколько вы усвоили этот урок пройдите тест в мобильном приложении в нашей школы по этой теме.

Sumerian school

Ссылки

  1. TypeScript Lang
  2. Мысли в слух о TypeScript
  3. Основы TypeScript
  4. Сanonium

Contributors ✨

Thanks goes to these wonderful people (emoji key):


IIo3iTiv

📖

Dmitriy Vasilev

💵

Become a Patron!