Машинописный текст против Javascript — понимание разницы

Один из часто задаваемых вопросов, которые я получаю: в чем разница между JavaScript и Typescript?

Давай выясним…

С того момента, как вы начали программировать, JavaScript (JS) стал частью всех ваших интерфейсных проектов. Если вы немного знакомы с JS, думайте о TypeScript как о JS плюс некоторые дополнительные функции, которые делают ваше приложение более аккуратным и типизированным. TypeScript был разработан Microsoft как проект с открытым исходным кодом, чтобы сделать разработку JS более эффективной и выявить ошибки компиляции на раннем этапе.

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

Что такое JavaScript?

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

Давайте напишем простой JS-код и запустим его в браузере:

Создайте файл example.html и добавьте следующий код:

<script>

feeling = 'happy';

feeling = 23;

</script>

Этот простой код объявляет переменную и присваивает ей значение happy (строка). Мы можем присвоить той же переменной значение другого типа (числа). JavaScript не будет жаловаться на это, и мы можем без проблем запускать код в любом браузере. Теперь давайте получим значение чувства от пользователя:

Наш HTML будет выглядеть так:

<input type = "textbox" id = "howyoufeel">

а скрипт будет такой:

feeling = document.getElementById("howyoufeel").value;

Если мы не поместим в скрипт явные проверки, JS примет любое значение от пользователя и передаст его дальше. Таким образом, вы можете поместить что-нибудь вроде 234, @.#$% и т. д. в переменную feel.

Особенности JavaScript

Из вышеизложенного мы можем наблюдать следующие особенности JavaScript:

  • Слабо типизированный скриптовый язык
  • Используется для сценариев на стороне клиента и на стороне сервера (с node.js).
  • Гибкий и динамичный
  • Поддерживается всеми основными браузерами
  • Легкий и интерпретируемый

Если вы заинтересованы в освоении JavaScript, ознакомьтесь с этим Удеми курс.

Что такое TypeScript?

Реальное приложение будет иметь множество проверок и динамических проверок. Для таких приложений код JavaScript в какой-то момент станет трудно тестировать, в основном из-за отсутствия проверки типов. Получая значения от пользователей, важно получить их правильно с самого начала. Здесь на помощь приходит TypeScript.

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

И JavaScript, и TypeScript соответствуют спецификациям ECMAScript для языка сценариев. Typescript может запускать весь код JavaScript и поддерживает все его библиотеки — поэтому его называют надмножеством JavaScript.

Установка TypeScript

Чтобы выполнить наш предыдущий код на TypeScript, нам нужно установить компилятор TypeScript с помощью пакета npm (если у вас есть node js).

npm install -g typescript

или скачайте прямо с официального Страница загрузок Майкрософт. Вы также можете использовать ТС детская площадка чтобы увидеть, как код транскомпилируется из ts в js.

Как только это будет сделано, вы можете настроить параметры проекта в tsconfig.json и использовать любую IDE или текстовый редактор, чтобы написать код TypeScript и сохранить его как .ts.

Вы все еще можете уйти, не определяя тип переменной, и TypeScript может вывести тип данных. Однако вы получите «ощущение» ошибки, если укажете что-либо, кроме первого использованного типа (в нашем случае String) — во время самой компиляции.

Всегда полезно иметь в коде аннотацию типа для удобства сопровождения и простоты использования:

var feeling: string = “happy”;

Это не то!

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

Особенности TypeScript

Typescript имеет богатый набор функций, и каждый выпуск поставляется с новыми функциями, которые упрощают разработку, чем раньше. Например, в новой версии (4.0) некоторые дополнительные функции являются вариативными типами кортежей, пользовательскими фабриками JSX, выводом свойств класса из конструкторов и т. д. Вот некоторые типичные особенности TypeScript:

  • Поддерживает концепции объектно-ориентированного программирования, такие как интерфейс, наследование, класс. дженерики
  • Раннее обнаружение ошибок
  • Поддержка IDE с проверкой синтаксиса и предложениями
  • Легче отлаживать по мере ввода
  • Транскомпилирует в JavaScript
  • Используется как для серверных, так и для клиентских приложений.
  • Кроссплатформенная и кроссбраузерная поддержка
  • Поддерживает все библиотеки и расширения JS.

Зачем нам нужен TypeScript? (Преимущества TypeScript перед JavaScript)

Microsoft разработала и использовала TypeScript в течение двух лет для своих внутренних проектов, прежде чем сделать его общедоступным в 2012 году. Они создали типизированный JavaScript, потому что было проще тестировать код для корпоративных приложений производственного уровня. Вы по-прежнему можете использовать функции динамической типизации, а также вводить переменные, когда это действительно необходимо.

Рассмотрим приведенный ниже код:

var mynum  = //get from user;

addten(number){

return number + 10;

}

Мы ожидаем, что результатом всегда будет число. Но что, если пользователь дает «овец»? На выходе будет овца10 — в идеале нам нужно сообщить пользователю, что эта операция невозможна!

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

Значит ли это, что нам не нужен JavaScript? (Недостатки TypeScript по сравнению с JavaScript)

Вы можете думать о TypeScript как о расширении JavaScript, но уж точно не как о его замене.

Для небольших фрагментов кода TypeScript может стать накладным расходом — установка, компиляция, транскомпиляция будут излишними. С помощью JavaScript вы можете просто ввести свой сценарий в HTML, и он будет работать. Также легче отлаживать код, когда вы можете просто обновлять браузер каждый раз, когда что-то меняете.

Прямое сравнение

Теперь, когда мы поняли особенности и преимущества как TypeScript, так и JavaScript, давайте проведем дополнительные сравнения:

Машинопись
JavaScript
Типизированный язык, который отлавливает ошибки компиляции на ранней стадии.
Вы можете узнать ошибки во время выполнения
Подходит для крупных проектов, так как улучшает удобство сопровождения и читабельность кода.
По мере добавления кода его становится сложно тестировать и отлаживать, поэтому JS подходит для небольших проектов.
Расширенный набор JS, т. е. такие функции, как объектная ориентация, проверка типов и многое другое.
Язык сценариев, поддерживающий создание динамического веб-контента.
Требуется установка компилятора и настройка конфигурации
Нет необходимости в какой-либо установке; Код JS можно написать напрямую в браузере с помощью тега , сохраняете его как HTML — и вы увидите результат! Затем вы можете использовать его для создания более динамичного контента.

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

Однако с точки зрения карьеры и заработной платы, как Разработчик TypeScript, вы будете более гибкими и удобными как с проектами JS, так и с TS — так что, безусловно, это лучший актив на рынке. Обычно разработчикам TypeScript платят от 110 до 147 тысяч долларов, тогда как разработчикам JS платят от 63 до 118 тысяч долларов в год.