JavaScript vs. TypeScript: В чём разница?
Что такое JavaScript?
JavaScript - это язык сценариев, который помогает создавать интерактивные веб-страницы. Он следует правилам программирования на стороне клиента, поэтому он запускается в веб-браузере пользователя без необходимости использования каких-либо ресурсов веб-сервера. Так же вы можете использовать JavaScript с другими технологиями, такими как REST API, XML и прочие.
Идея разработки этого сценария состоит в том, что бы сделать его дополнительным языком сценариев, таким как Visual Basic был для C++ в семействе языков Майкрософт. Однако, JavaScript не предназначен для больших и сложных приложений. Он был разработан для приложений с несколькими сотнями строк кода!
Что такое TypeScript?
TypeScript - это современный язык разработки JavaScript. Это статически компилируемый язык для написания чистого и понятного JavaScript кода. Он может быть запущен на Nodejs или в любом браузере, поддерживающим ECMASCript 3 или новее.
TypeScript предоставляет необязательную статическую типизацию, классы и интерфейс. Для большого JavaScript проекта внедрение TypeScript может дать более стабильное и легко устанавливаемое программное обеспечение, как обычное JavaScript приложение.
Далее мы рассмотрим ключевые различия между TypeScript и JavaScript.
Ключевые различия
- JavaScript - это язык сценариев, который помогает создавать интерактивные веб-страницы, в то время как TypeScript - это надстройка JavaScript.
- TypeScript код должен быть скомпилирован, в то время когда JavaScript не нуждается в компиляции.
- TypeScript поддерживает функцию прототипирования, в отличие от JavaScript.
- TypeScript использует такие концепции, как типы и интерфейсы для описания используемых данных, в то время как в JavaScript таких концепций нет.
- TypeScript - это мощная система типов включающая дженерики и возможности JavaScript для больших проектов, в то время как JavaScript идеален для небольших проектов.
Почему javaScript?
- Проект с открытым исходным кодом под патронажем Майкрософт
- Специально разработанный инструмент для небольших сценариев
- Поддерживает классы, интерфейсы и модули
- Скомпилированный JavaScript запускается в любом браузере
- Разрешает кросс-компиляцию
- Вы можете расширить JavaScript для написания больших приложений
- Добавляет поддержку классов, интерфейсов и модулей.
Почему TypeScript?
- TypeScript поддерживает JavaScript-библиотеки и API-документацию
- Это надмножество JavaScript
- Это опционально типизированный язык сценариев
- TypeScript можно конвертировать в простой JavaScript код
- Улучшенная структура кода и техники объектно-ориентированного программирования
- Обеспечивает лучшую поддержку инструмента времени разработки
- Он может расширить язык за пределы стандартных декораторов async/await
Разница между JavaScript и TypeScript
Ниже приведены основные различия TypeScript и javaScript
Параметр | TypeScript | JavaScript |
---|---|---|
Что это | Мощная система типов, включающая дженерики и возможности JS | Лёгкий, интерпретируемый, объектно-ориентированный язык с первоклассными функциями |
Присвоение данных | TypeScript использует такие концепции, как типы и интерфейсы для описания используемых данных | В JavaScript нет такой концепции |
Экосистема | Мощная и интуитивно понятная экосистема. Таким образом он позволяет вам статически типизировать различные типы идиоматических возможностей JS, таких, как объединение, пересечения, различаемое объединение. | JavaScript даёт возможность исследовать и создавать код без этапа сборки. |
NPM пакеты | С TypeScript, многие npm пакеты либо поставляются со статически определёнными типами, либо имеют дополнение которое легко установить. | JavaScript даёт возможность исследовать и создавать код без этапа сборки. |
Кривая обучения | Жёсткая кривая обучения. Требует первоначального знания сценариев. | Гибкий и простой в освоение язык сценариев |
Прототипирование | В TypeScript есть возможность прототипирования | У JavaScript нет такой возможности |
Сообщество | У TypeScript нет большого сообщества разработчиков | У JavaScript огромное сообщество разработчиков |
Компиляция | TypeScript код необходимо компилировать | JavaScript не требуется компиляция |
Аннотация | Что бы получить максимальную отдачу от TypeScript разработчик должен постоянно указывать тип переменных | В JavaScript не требует аннотация |
Известные компании использующие технологию | Asana, Clever, Screen award | Airbnb, Codecademy, Instagram |
Зарплаты (в США) | Средняя зарплата TypeScript-разработчика в год 148027$ | Средняя зарплата JavaScript-разработчика в год 110777$ |
История JavaScript
Программист корпорации Netscape Communication Брендан Эйх (или Айк) (Brendan Eich /ˈaɪk/) создал язык для изначально называвшийся «Mocha» он предназначался для работы Netscape navigator. Однако, став популярным инструментом для создания скриптов был переименован в LiveScript. Позже он был переименован в JavaScript, что бы отобразить поддержку Java в браузере Netscape.
Давайте посмотрим на важные вехи в истории javaScript:
- Он был запущен в сентябре 1995 и понадобилось всего десять дней для разработки языка сценариев, который первоначально назывался «Mocha»
- В ноябре 1996 года Netscape представила JavaScript в ECMA (European Computer Manufacturers Association - Европейская Ассоциация Производителей Компьютеров) International
- ECMAScript 2 был выпущен в 1998 году
- ECMAScript 3 был выпущен в 1999 году
- В 2005 году Эйх (Айк) и Mozilla присоединились к ECMA для разработки E4X JavaScript
- В январе 2009 был запущен проект CommonJS с целью определения общей стандартной библиотеки
- В июне 2011 года был выпущен ECMAScript 5.1
- В июне 2015 года был выпущен ECMAScript 2016
- Текущая версия ECMAScript 2017, была выпущена в июне 2017 года
История TypeScript
Давайте рассмотрим важные вехи в истории TypeScript:
- Впервые TypeScript был представлен публике в 2012 году
- После двух лет внутренней разработки в Майкрософт, в 2013 году был выпущен TypeScript 0.9
- Дополнительная поддержка дженериков появилась в TypeScript 1.0, выпущенном в 2014 году
- В Июле 2014 года, новый компилятор TypeScript стал работать в пять раз быстрее предыдущих версий
- В Июле 2015 года появилась поддержка модулей ES6, пространства имён, ключевое слово
for ... of support
, декораторы - В ноябре 2016 была добавлены
keyof
и типы поиска, сопоставленные типы и остальное - 27 марта 2018 года, добавлены условные типы, улучшены поддержка
keyof
с типами пересечения Typescript
Возможности JavaScript
- Это кросс-платформенный язык
- Используется для программирования как на стороне клиента, так и на стороне сервера
- Лёгок для изучения и старта
- Динамический язык: гибки и мощный
- Большая «свобода выбора» делать всё, что вы хотите с любым объектом
- Надёжный процесс тестирования
- Добавлены зависимости
- Нет поддержки фреймворков
Возможности TypeScript
- Обслуживаемость
- Предлагает отличную производительность для разработчиков
- Навигация по коду и предотвращение ошибок
- «Обнаруживаемость»и рефакторинг
- Опциональная аннотация статических типов / статическая типизация
- Дополнительные возможности функций
- Поддерживает ES6
- Поддерживает интерфейсы, под-интерфейсы, классы и под-классы
- Масштабируемая html5 разработка на стороне клиента
- IDE с богатым функционалом, возможностями автодополнения и навигации по коду
- Основанный на классах объектно-ориентированный с наследованием приватных свойств и интерфейсов
JavaScript vs. TypeScript: Что лучше?
Подводя итоги сравнения JavaScript и TypeScript можно сказать, что если опытный разработчик работает над небольшим проектом, то идеальным вариантом будет - JavaScript. Однако если у вас команда опытных разработчиков, предпочтительным вариантом будет TypeScript.