Что такое TypeScript?
На этом уроке мы рассмотрим, что такое TypeScript и какая у него связь с JavaScript.
Введение в TypeScript
TypeScript строится поверх JavaScript. Сначала вы пишете код на TypeScript. Затем вы компилируете код TypeScript в чистый JavaScript-код с помощью компилятора TypeScript. Как только у вас есть чистый JavaScript-код, вы можете развернуть его в любой среде, где работает JavaScript.
Файлы TypeScript используют расширение .ts вместо расширения .js (файлы JavaScript).
TypeScript использует синтаксис JavaScript и добавляет дополнительные синтаксические конструкции для поддержки типов.
Если у вас есть программа на JavaScript, которая не имеет синтаксических ошибок, то она также является и TypeScript-программой. Это означает, что все программы на JavaScript являются программами на TypeScript. Это очень полезно, если вы переводите существующую кодовую базу c JavaScript на TypeScript.
На следующей диаграмме показано отношения между TypeScript и JavaScript:

Зачем использовать TypeScript?
Основные цели TypeScript:
Добавить статическую типизацию (явное указание типов данных) в JavaScript.
Реализовать планируемые функции будущего JavaScript, такие как ECMAScript Next или ES Next для текущего JavaScript.
1. TypeScript повышает вашу продуктивность и помогает избегать ошибок.
Используя типы, вы можете обнаружить ошибки на этапе компиляции, вместо того, чтобы столкнуться с ними во время выполнения.
Рассмотрим пример. Следующая функция выполняет операцию сложения двух чисел x и y :
Введение в TypeScript
TypeScript представляет язык программирования на основе JavaScript.
Развитие TypeScript началось в конце 2012 года. Хотя он зародился в компании Microsoft, и его фактическим создателем является программист Андерс Хейлсберг, так же известный как создатель таких языков как Delphi, C#, но данный проект сразу стал развиваться как OpenSource. И уже с самого начала новый язык стал быстро распространяться в силу своей гибкости и производительности. Немало проектов, которые были написаны на JavaScript, стали переноситься на TypeScript. Популярность и актуальность идей нового языка привела к тому, что ряд из этих идей в последующем стали частью нового стандарта JavaScript. Преимущества TypeScript были подхвачены создателями ряда распространенных и широкоиспользуемых фреймворков. К слову, одни из наиболее популярнейших фреймворков для Web — Angular 2+ и Vue3 полностью написаны на TypeScript.
Однако, казалось бы, зачем нужен еще один язык программирования для клиентской стороны в среде Web, если со всей той же самой работой прекрасно справляется и традиционный JavaScript, который используется практически на каждом сайте, которым владеет множество разработчиков и поддержка которого в сообществе программистов довольно высока. Но TypeScript это не просто новый JavaScript.
Во-первых, следует отметить, что TypeScript — это строго типизированный и компилируемый язык, чем, возможно, будет ближе к программистам Java, C# и других строго типизированных языков. Хотя на выходе компилятор создает все тот же JavaScript, который затем исполняется браузером. Однако строгая типизация уменьшает количество потенциальных ошибок, которые могли бы возникнуть при разработке на JavaScript.
Во-вторых, TypeScript реализует многие концепции, которые свойствены объектно-ориентированным языкам, как, например, наследование, полиморфизм, инкапсуляция и модификаторы доступа и так далее.
В-третьих, потенциал TypeScript позволяет быстрее и проще писать большие сложные комплексные программы, соответственно их легче поддерживать, развивать, масштабировать и тестировать, чем на стандартном JavaScript.
В-четвертых, TypeScript развивается как opensource-проект и, как и многие проекты, хостится на гитхабе. Адрес репозитория — https://github.com/Microsoft/TypeScript. Кроме того, он является кроссплатформенным, а это значит, что для разработки мы можем испольвать как Windows, так и MasOS или Linux.
В то же время TypeScript является типизированным надмножеством JavaScript, а это значит, что любая программа на JS является программой на TypeScript. В TS можно использовать все те конструкции, которые применяются в JS — те же операторы, условные, циклические конструкции. Более того код на TS компилируется в javascript. В конечном счете, TS — это всего лишь инструмент, который призван облегчить разработку приложений.
Генерируемый компилятором TypeScript код JS поддерживается подавляющим большинством браузеров. Хотя в процессе разработки мы можем сами задать целевой стандарт ECMAScript.
Как использовать TypeScript? Поскольку данный язык является OpenSource, то все его инструменты доступны для всех желающих. Для работы с TypeScript мы можем использовать как Windows, так и Linux и MacOS.
Сам компилятор TS можно установить с помощью команды менеджера пакетов npm, который используется в Node.js:
> npm install -g typescript
Для написания кода на языке TypeScript можно использовать любой самый простейший текстовый редактор. Многие текстовые редакторы и среды разработки, например, Visual Studio Code, Visual Studio, WebStorm и другие, имеют поддержку TypeScript на уровне плагинов, что позволяет воспользоваться рядом преимуществ, например, подцветкой кода или всплывающей подсказкой по типам и конструкциям языка.
Что такое и для чего нужен TypeScript¶
Поскольку постижение всего нового занимает много драгоценного времени и сил, то человек прежде чем сделать выбор должен взвесить все «за» и «против». Чем больше у него сопряженного опыта, тем легче будет принять решение. Это означает, что недавно присоединившимся к JavaScript сообществу будет наиболее полезно начать свое погружение в TypeScript с подтверждения правильности своего выбора. Кроме того, данная глава сможет ответить на многие вопросы опытных разработчиков, которые обдумывают использование данного языка при создании очередного проекта. Поэтому обойдемся без затягивания и начнем по порядку разбирать самые часто возникающие вопросы, связанные с TypeScript.
Что такое TypeScript¶
TypeScript — это язык программирования со статической типизацией, позиционирующий себя как язык, расширяющий возможности JavaScript.
Typescript код компилируется в JavaScript код, который можно запускать как на клиентской стороне (браузер), так и на стороне сервера (nodejs). Качество сгенерированного кода сопоставимо с кодом, написанным профессиональным разработчиком с большим стажем. Мультиплатформенный компилятор TypeScript отличается высокой скоростью компиляции и распространяется по лицензии Apache, а в его создании принимают участие разработчики со всего мира, что привело к традиции выпускать новую версию каждые два месяца. Несмотря на такую периодичность версии долгое время сохраняют совместимость, а по истечению долгого времени устаревшее поведение остается доступным при активизации специальных флагов компилятора. Поэтому не стоит опасаться, что проект будет лишен новых возможностей языка из-за версионных различий TypeScript. Ну, а большое количество разработчиков компилятора означает, что с каждой новой версией компилятор получает обновления, касающиеся всех направлений, будь то синтаксические конструкции или оптимизации скорости компиляции и сборки проекта.
История TypeScript¶
Разработчиком языка TypeScript является Андерс Хейлсберг, также известный как создатель языков Turbo Pascal, Delphi и C#. С момента своего анонсирования компанией MicroSoft* в 2012 году, TypeScript не перестает развиваться и склоняет все больше профессиональных разработчиков писать свои программы на нем. На текущий момент трудно представить крупную компанию, не использующую его в своих проектах. Поэтому знание TypeScript будет весомым критерием при устройстве на работу своей мечты.
Для чего нужен TypeScript¶
Поскольку сложность современных веб-приложений сопоставима с настольными, то, прежде всего, TypeScript предназначен для выявления ошибок на этапе компиляции, а не на этапе выполнения. Кроме того, за счет системы типов разработчики получают такие возможности, как подсказки и переходы по коду, которые значительно ускоряют процесс разработки. Помимо этого, система типов в значительной степени избавляет разработчиков от комментирования кода, которое отнимает значительное время. Также система типов помогает раньше выявлять проблемы архитектуры, исправление которых обходится дешевле на ранних этапах.
Хотя на текущий момент практически невозможно найти библиотеку, которая бы не была портирована на TypeScript, JavaScript код, оставшийся от предыдущих проектов, не стоит списывать со счетов, поскольку его совместное использование не вызовет никакой проблемы. Компилятор TypeScript отлично справляется с динамическим JavaScript кодом, включенным в свою типизированную среду, и даже выявляет в нем ошибки. Кроме того, при компиляции .ts файлов в .js дополнительно генерируются файлы декларации .d.ts, с помощью которых разработчики, создающие свои программы исключительно на JavaScript, получат все прелести типизированного автодополнения в любой современной среде разработки.
Зачем разработчику TypeScript¶
TypeScript значительно сокращает время на устранение ошибок и выявление багов, которые порой не так просто отыскать в динамической среде JavaScript.
В случае, если для разработчика TypeScript является первым типизированным языком, следует знать, что его изучение значительно ускорит процесс профессионального роста, поскольку типизированный мир открывает аспекты программирования неочевидные в динамических языках.
Помимо этого, TypeScript позволяет писать более понятный и читаемый код, максимально описывающий предметную область, за счет чего архитектура приложения становится более выраженной, а разработка неявно увеличивает профессиональный уровень программиста.
Всё это, в своей совокупности, сокращает время разработки программы, снижая её стоимость и предоставляя разработчикам возможность поскорее приступить к реализации нового и ещё более интересного проекта.
TypeScript
Устройте конкурс между агентствами и узнайте реальные цены и сроки выполнения вашего проекта. Создание заказа занимает 5 минут.
Об инструменте
Что такое TypeScript
TypeScript – мультипарадигмальный язык программирования со статической типизацией, который является надстройкой JavaScript. TypeScript изобрели в Microsoft, как более удобную версию привычного JavaScript. Язык добавляет новые возможности для реализации объектно-ориентированного стиля программирования, а также позволяет избежать ошибок, связанных с динамической типизацией JavaScript. TypeScript обратно совместим с JavaScript и может быть транспилирован в JavaScript без потери функциональности.
Ключевая особенность TypeScript – дополнение JavaScript строгой типизацией. Это означает, что разработчик не может присвоить разные значения типа одной и той же переменной: к примеру, сначала определить переменную как число, а потом как текст. От подобных ошибок, программа на JavaScript будет вести себя как некорректно, из-за чего разработчику придется тратить время на устранение своей ошибки. Более того, TypeScript дает возможность проверки типов на компиляции, что больше свойственно компилируемым языкам, а не интерпретируемым, как JavaScript.
Другая особенность – в отличие от JavaScript, TypeScript позволяет более глубоко реализовать объектно-ориентированный стиль программирования за счет дополнительных функций. К примеру, в TypeScript есть поддержка модификаторов доступа, которых нет в JavaScript. Модификаторы доступа позволяют ограничить те или области классов от влияния внешнего кода, наделяя области приватным статусом.
TypeScript создан для веб-разработки, но, в отличие от JavaScript, его не поддерживают браузеры – код TypeScript на сайте не будет работать. Чтобы код заработал, его транспилируют в код на JavaScript, с помощью специальной программы – компилятора.
Где применяют TypeScript
Популярная область применения TypeScript – веб-разработка. TypeScript поддерживают ряд инструментов, которые популярны в сфере веб-разработки. К примеру, TypeScript поддерживают среда разработки Node.js, а также бэкэнд-фреймворк Nest.js.
Преимущества разработки на TypeScript
- повышение производительности работы за счет ошибок, связанных с типизацией;
- поддержка большим количеством инструментов для веб-разработки;
- синтаксис, который во многом схож с JavaScript;
- достаточно большое количество русскоязычных специалистов и обучающих материалов.
Недостатки разработки на TypeScript
- при некачественной разработке на TypeScript, код может транспилироваться в некачественный код JavaScript, поскольку транспиляция не учитывает рантайм TypeScript;
- для разработки средних и больших проектов с большими массивами кода, на языке должны работать специалисты с хорошей квалификацией.
Примеры готовых сайтов на TypeScript
- Японский сайт для публикации портфолио дизайнерами – vivivit.com.
- Сайт дизайнера неоновых вывесок – electrodeart.com.
- Сайт-портфолио веб-разработчика – dustinbrett.com.
- Дизайнерский проект – seen.space.
- Сайт компании по веб-разработке – tinloof.com.
