Чем отличается typescript от javascript
Перейти к содержимому

Чем отличается typescript от javascript

  • автор:

JavaScript vs TypeScript. Почему Вы должны изучить TypeScript?

JavaScript один из самый популярных языков программирования. Одна из причин этого, что он является динамически типизированным. Другим словами, JavaScript – это более свободный язык, но, если вы встретите много кода в вашем проекте, то эта свобода может перерасти в панику.

Давайте взглянем на данный код.

const pikachu = (a, b) =>

Можете ли вы угадать, что вернет этот код?

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

// Передается число. const pikachu = (a, b) => < return a + b; >const result = pikachu(2021, 9); console.log(result); // 2030
// Передается строка. const pikachu = (a, b) => < return a + b; >const result = pikachu("2021", "9"); console.log(result); // 20219

JavaScript это язык с динамической типизацией. Это полезно тем, что позволяет писать код более легко. Но, разработчики должны уделять больше внимания типам аргументов, которые нужны в функции, а также какое значение должно возвращаться. Чем больше и больше вы читаете различный код, тем более это начинает раздражать.

С другой стороны, пожалуйста, посмотрите на данный код.

const pikachu = (a: number, b: number): number =>

Данный код на typescript. TypeScript – это язык с статической типизацией. Когда мы смотрим на это, мы сразу можем понять, что значение, которое возвращает функция pikachu будет числом.

Очень полезно быстро понимать код, потому что при работе вы будете встречаться с большим количеством кода.

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

Основы TypeScript

TypeScript имеет несколько примитивный типов данных, таких как string, number, boolean, null, undefined.

Это код с простыми типами данных.

const caterpie01: number = 2021; // OK const caterpie02: number = false; // Не ок const Metapod01: string = "sleepy"; // OK const Metapod02: string = true; // Не ок const Wartortle01: boolean = true; // OK const Wartortle02: boolean = 1111; // Не ок

При запуске кода мы сразу встречаем несколько ошибок.

typescript.ts:10:7 - error TS2322: Type 'boolean' is not assignable to type 'number'. 10 const caterpie02: number = false; // Не ок ~~~~~~~~~~ typescript.ts:13:7 - error TS2322: Type 'boolean' is not assignable to type 'string'. 13 const Metapod02: string = true; // Не ок ~~~~~~~~~ typescript.ts:16:7 - error TS2322: Type 'number' is not assignable to type 'boolean'. 16 const Wartortle02: boolean = 1111; // Не ок ~~~~~~~~~~~

Дальше, давайте посмотрим на null и undefined.

const Butterfree: null = null; const ButterfreeNull: string = Butterfree; console.log(ButterfreeNull) // null const Kakuna: undefined = undefined; const KakunaNull: string = Kakuna; console.log(KakunaNull) //undefined

Этот код работает. Мы можем устанавливать значения null и undefined строкам. В данном случае, я не использовал strict mode. При использовании же, код работает примерно так.

typescript.ts:21:7 - error TS2322: Type 'null' is not assignable to type 'string'. 21 const ButterfreeNull: string = Butterfree; ~~~~~~~~~~~~~~ typescript.ts:25:7 - error TS2322: Type 'undefined' is not assignable to type 'string'. 25 const KakunaNull: string = Kakuna;

И это хорошо! Мы сразу можем отлавливать ошибки.

Вы можете установить strict mode в tsconfig.json или использовать аргумент командой строки tsc —strict. Если вы не уверен, в том, как настраивать typescript, вы модете посмотреть примеры на офф. сайте.

Что такое тип данных “any”?

В TypeScript можно использовать тип данных any. Это позволяет работать с любым типом данных без ошибок. Прямо как в обычном javascript.

Давайте взглянем на пример кода.

let pidgey: any = 1991; console.log(typeof pidgey) // number pidgey = "bird"; console.log(typeof pidgey) // string pidgey = false; console.log(typeof pidgey) // boolean pidgey = null; console.log(typeof pidgey) // object pidgey = undefined; console.log(typeof pidgey) // undefined

Переменной pidgey можно присвоить любой тип данных!

Это магический тип данных. ��

Если вы собираетесь использовать тип данных any, то TypeScript нам сразу становится не нужным. Просто пишите код на JavaScript.

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

const caterpie01: number = 2021; // number const caterpie001 = 2021; // number - выбор typescript const Metapod01: string = "sleepy"; // string const Metapod001 = "sleepy"; // string - выбор typescript const Wartortle01: boolean = true; // boolean const Wartortle001 = true; // boolean - выбор typescript 

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

let caterpie001 = 2021; // number caterpie001 = "text"; // type error

С другой стороны, если мы не укажем тип данных для аргументов функции, typescript выберет тип any. Посмотрим на код.

const pikachu = (a, b) => < return a + b; >pikachu(2021, 9);

Я получил вот такие ошибки. (В данный момент у меня включен strict mode. Если же его выключить, то код прекрасно отработает)

typescript.ts:57:18 - error TS7006: Parameter 'a' implicitly has an 'any' type. 57 const pikachu = (a, b): number => < ~ typescript.ts:57:21 - error TS7006: Parameter 'b' implicitly has an 'any' type. 57 const pikachu = (a, b): number =>

Всё из-за того, что typescript не может узнать какое значение будет получено.

Для этого тип данных any и был добавлен в typescript. Когда мы используем функции в typescript, мы должны указывать типы данных для аргументов, как на примере.

const pikachu = (a: number, b: number): number =>
// можно также не указывать какой тип данных будет возвращаться const pikachu = (a: number, b: number) =>

Если вы создаете функцию в typescript, вы обязаны указывать тип данных. Я также рекомендую не использовать тип данных any, за исключением специфичных ситуаций. Таких, как, к примеру, при миграции с JavaScript на TypeScript.

Тип данных для объектов

TypeScript позволяет указывать тип данных для объектов через interface.
Посмотрим на пример.

// Определяем типы данных для объекта interface PokemonObj < name: string, age: number, skill: string >// Назначаем типы const pokemon: PokemonObj =

Мы можем использовать interface для создания типа данных для объектов. А затем назначать interface в объекте.
Если мы изменим тип данных внутри объекта, то получим ошибку.

// Определяем типы данных для объекта interface PokemonObj < name: string, age: number, skill: string >// Назначаем типы const pokemon: PokemonObj = < name: "pikachu", age: "change age", // изменили skill: "Electric Shock!" >

Ниже текст ошибки.

typescript.ts:75:3 - error TS2322: Type 'string' is not assignable to type 'number'. 75 age: "change age", ~~~ typescript.ts:69:3 69 age: number, ~~~ The expected type comes from property 'age' which is declared here on type 'PokemonObj'

Мы получаем ошибку типов. Удобно использовать interface как тип данных у объектов. Но, конечно же, мы можем описывать тип данных объекта сразу в коде, прямо как на примере.

const pokemon: =

Тип данных для массивов

Массив с типами данных выглядит вот так.

const pokemon: string[] = ["pikachu", "Raichu", "Charizard"];

Если мы изменим тип данных, то получим ошибку.

const pokemon: string[] = ["pikachu", "Raichu", false];
typescript.ts:80:49 - error TS2322: Type 'boolean' is not assignable to type 'string'. 80 const pokemon: string[] = ["pikachu", "Raichu", false];

Это полезно, так как нам не приходится заботиться о типе данных для каждого элемента массива. Кстати, можно записать тип данных и по-другому. Это такой же код, как и на примере выше.

const pokemon: Array = ["pikachu", "Raichu", "Charizard"];

Следующим типом данных будут generics(дженерики). Это обширный тип данных. После создания дженерик типа, мы можем определить его. Пример кода ниже.

// Определяем тип данных для массива как дженерик type Pokemon = T[]; // После, мы можем указывать любой тип данных const pokemon: Pokemon = ["pikachu", "Raichu", "Charizard"]; // Тоже самое, что и код выше const pokemon: string[] = ["pikachu", "Raichu", "Charizard"];

Мы можем указывать разные типы данных для дженериков.
Это не особо хороший пример кода, но довольно легкий для понимания как дженерики работают.

// Определяем тип данных для массива как дженерик type Pokemon = T[]; // После создания дженерика, мы можем выбрать любой тип данных const pokemon01: Pokemon = ["pikachu", "Raichu", "Charizard"]; const pokemon02: Pokemon = [6, 14, 16]; const pokemon03: Pokemon = [true, true, false];

Что такое union?

При использовании union, вы можете указывать сразу несколько типов данных. Пожалуйста, посмотрите на пример кода.

let pokemon: (string | number) = "pikachu"; // OK pokemon = 6; 

Этот код отработает правильно, т.к. переменная pokemon может быть как строкой, так и числом. Но код ниже не верен

let pokemon: (string | number) = "pikachu"; pokemon = 6; pokemon = false; // Не ок

Так как переменная pokemon не может принимать в себе тип данных Boolean, то компилятор выдаст ошибку. Если же вы хотите создать массив, в котором будет использоваться несколько разных типов данных, то вы можете также использовать union.
Пример кода.

// массив с использованием union let pokemon: (string | number)[] = ["pikachu", "Raichu", 6, 14];

Этот код верный. Но, если мы добавим другой тип данных, мы получим ошибку.

typescript.ts:105:65 - error TS2322: Type 'boolean' is not assignable to type 'string | number'. 105 let pokemon: (string | number)[] = ["pikachu", "Raichu", 6, 14, false];

Если вы будете добавлять в массив значения с разными типами, то union ваш выбор.

Что такое tupple?

Tupple – это точный тип данных.
Для начала, давайте взглянем на пример.

let pokemon: [string, number] = ["pikachu", 6];

Этот код сработает отлично. Данный тип данных, tupple, позволяет нам указывать только 2 элемента, строку и число, в определенном порядке.
Сейчас я вам покажу что будет, если указывать данные с ошибками.

typescript.ts:109:36 - error TS2322: Type 'number' is not assignable to type 'string'. 109 let pokemon02: [string, number] = [6, "pikachu"]; // Не ок ~ typescript.ts:109:39 - error TS2322: Type 'string' is not assignable to type 'number'. 109 let pokemon02: [string, number] = [6, "pikachu"]; // Не ок ~~~~~~~~~ typescript.ts:110:47 - error TS2322: Type 'string' is not assignable to type 'number'. 110 let pokemon03: [string, number] = ["pikachu", "text"]; // Не ок ~~~~~~ typescript.ts:111:5 - error TS2322: Type '[string, number, number]' is not assignable to type '[string, number]'. Source has 3 element(s) but target allows only 2. 111 let pokemon04: [string, number] = ["pikachu", 6, 14]; // Не ок

Тип данных Tupple это сама точность. И, в данном случае, это позволяет нам легко понять предназначение массива, и что он вмещает только 2 элемента. Первый, это строка, а второй, это число.

Выводы

В данном посте я описал базовые типы данных TypeScript’а.

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

Спасибо что потратили своё время на прочтение данного поста.

Чем отличается typescript от javascript

TypeScript — язык программирования, представленный Microsoft в 2012 году и позиционируемый как средство разработки веб-приложений, расширяющее возможности JavaScript

TypeScript является обратно совместимым с JavaScript и компилируется в последний. Фактически, после компиляции программу на TypeScript можно выполнять в любом современном браузере или использовать совместно с серверной платформой Node.js. Код экспериментального компилятора, транслирующего TypeScript в JavaScript, распространяется под лицензией Apache. Его разработка ведётся в публичном репозитории через сервис GitHub.

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

Особенности языка

TypeScript это расширение языка ECMAScript 5. Добавлены следующие опции:

  • Аннотации типови проверка их согласования на этапе компиляции
  • Вывод типов
  • Классы
  • Интерфейсы
  • Перечисляемые типы
  • Примесь
  • обобщённое программирование
  • Модули
  • Сокращенный синтаксис «стрелок» для анонимных функций
  • Дополнительные параметры и параметры по умолчанию
  • Кортежи

Синтаксически, TypeScript очень похож на JScript .NET, очередную реализацию Microsoft языкового стандарта ECMA-262, обеспечивающего поддержку статической типизации и классических объектно-ориентированных возможностей языка, таких как классы, наследование, интерфейсы и пространства имен.

Совместимость с JavaScript

TypeScript является надстройкой над JavaScript. Таким образом, программа JavaScript также является правильной программой TypeScript, и программы TypeScript могут легко включать JavaScript. TypeScript компилирует ES3-совместимый JavaScript. По умолчанию компилируется ECMAScript 3, как преобладающей стандарт; также есть возможность создавать конструкции, используемые в ECMAScript 5.

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

TypeScript для начинающих: преимущества языка и первый код

Рассказываем, почему появился TypeScript, чем он отличается от JavaScript и что надо знать, чтобы стать TypeScript-разработчиком.

Иллюстрация: Kristina Clopova / Wikimedia Commons / Colowgee для Skillbox Media

Антон Яценко

Антон Яценко
Изучает Python, его библиотеки и занимается анализом данных. Любит путешествовать в горах.

TypeScript — это язык программирования, разработанный в 2012 году Microsoft. Его создали для того, чтобы обойти ограничения JavaScript в больших проектах: изменили типизацию на статическую, расширили возможности объектно-ориентированного программирования и добавили обратную совместимость с JS. Давайте разберёмся в отличиях вместе: напишем первый код, поговорим про типизацию и узнаем, сколько зарабатывают TypeScript-разработчики.

Почему появился TypeScript?

Предок TypeScript — популярный в веб-разработке JavaScript. JavaScript появился в 1995 году для создания небольших скриптов на веб-страницах. Это позволило дополнить HTML динамическими элементами, например активными кнопками, формами для регистрации пользователей или проигрывателем видео.

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

TypeScript разработали в Microsoft. Первую версию языка компания представила в 2012 году. Его сразу позиционировали как средство разработки веб-приложений, расширяющее возможности JavaScript.

Популярность языка быстро растёт в последние десять лет. Он вошёл в топ-10 языков по версии Octoverse в 2017 году, а в 2021 году уже стал четвёртым по популярности языком и уступил только «старичкам»: JavaScript, Python и Java:

TypeScript vs JavaScript

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

Статическая и динамическая типизация

TypeScript использует статическую типизацию, а JavaScript — динамическую. Но что это значит? Лучше всего разобрать это на примере.

Представьте, что один из разработчиков создал функцию addNum. В коде он указывает типы переменных, показывая, что функция принимает только два числа. Если какой-то программист решит передать вместо числа текст, то в TypeScript появится предупреждение, что так делать нельзя.

JavaScript проигнорирует это и попытается выполнить код. Результат при этом непредсказуем. Посмотрим на один и тот же код на двух языках программирования:

TypeScript

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

Проверка кода до выполнения

Из-за динамической типизации найти ошибки в JavaScript можно только после окончательного написания кода — его придётся запустить. Это создаёт трудности, так как код может быть большим, а ошибки лучше отлавливать в самом начале, когда это сделать легче.

В TypeScript всё проще — проверка проходит прямо в редакторе, то есть выполнение кода для этого не требуется. Это особенность статической типизации, которая облегчает работу.

Обратная совместимость с JavaScript

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

Благодаря этому TypeScript активно используется на проектах, где кодовая база написана на JavaScript. Разработчики могут постепенно заменять старый код на новый без каких-либо трудностей.

Полноценный ООП

TypeScript реализует полноценное объектно-ориентированное программирование (ООП), поддерживая разные концепции: классы, интерфейсы, наследование и многое другое. Это облегчает создание хорошо организованного масштабируемого кода, делая TypeScript отличным выбором для развивающихся проектов.

Поддержка различных IDE

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

Писать на TypeScript можно в любом редакторе, который его поддерживает. Например, WebStorm, VSC, Eclipse или Atom. Никаких ограничений на среду разработки нет.

Быстрое и лёгкое развитие кода

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

TypeScript делает этот процесс лёгким. Поскольку IDE хорошо взаимодействует с кодом, написанным на TypeScript, то в распоряжении программиста появляются полезные инструменты навигации внутри кода. Например, среда разработки может подсветить все упоминания и связи отдельной переменной.

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

Как установить TypeScript

Проще всего TypeScript устанавливается через пакетный менеджер npm. Но чтобы установить npm, необходимо установить Node.js 🙂

Если у вас Windows, то для дальнейших действий понадобится менеджер пакетов Chocolatey. Если же у вас macOS, то потребуется Homebrew.

Для начала установки Node.js необходимо выполнить команду:

В Choco: choco install -y nodejs.install

В Brew: brew install node

После этого можно устанавливать TypeScript:

В npm: npm install -g typescript

В Yarn: yarn add -g typescript

Проверить, установился ли TypeScript, можно командой: tsc -v.

Если установка прошла успешно, то терминал покажет вам версию TypeScript:

Теперь компьютер готов к работе.

Пишем первый код

Посмотрим на TypeScript в работе. Для этого напишем две простые программы: первая — классический «Hello, World!», а вторая — перемножает два числа.

Привет, мир!

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

Но знать только TypeScript — недостаточно даже для первой работы. Вот необходимый минимум:

  • TypeScript;
  • HTML / CSS3;
  • один или несколько фреймворков для веб-разработки: React.js, Angular;
  • базы данных: PostgreSQL, SQLite;
  • Git, GitHub/GitLab;
  • Jira или таск-трекеры;
  • часто плюсом к TypeScript требуют и JavaScript.

На зарубежном рынке зарплаты выше. Согласно исследованию Stack Overflow Annual Developer Survey 2022, TypeScript-разработчики — уверенные середнячки по зарплате. Как правило, это 60 тысяч долларов в год до вычета налогов.

Где узнать про TypeScript больше

Главный источник — официальная документация по TypeScript. На сайте можно не только найти подробное руководство, но и запустить «песочницу», которая позволяет работать с TypeScript прямо в браузере, без установки на локальную машину.

Резюмируем

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

Читайте также:

  • JavaScript: главный инструмент frontend-разработчиков
  • Как себя продать: чистим резюме от типичных ошибок
  • TypeScript: как с ним работать и чем он отличается от JavaScript

JavaScript и TypeScript: В чём разница?

JavaScript — это язык сценариев, который помогает создавать интерактивные веб-страницы. Он следует правилам программирования на стороне клиента, поэтому он запускается в веб-браузере пользователя без необходимости использования каких-либо ресурсов веб-сервера. Так же вы можете использовать JavaScript с другими технологиями, такими как REST API, XML и прочие.

Идея разработки этого сценария состоит в том, что бы сделать его дополнительным языком сценариев, таким как Visual Basic был для C++ в семействе языков Майкрософт. Однако JavaScript не предназначен для больших и сложных приложений. Он был разработан для приложений с несколькими сотнями строк кода!

Что такое TypeScript?

TypeScript — это современный язык разработки JavaScript. Это статически компилируемый язык для написания чистого и понятного JavaScript кода. Он может быть запущен на Node.js или в любом браузере, поддерживающим 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *