Каковы основные отличия между Babel и TypeScript

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

Я заметил, что многие известные компании придерживаются Вавилона.

Некоторые вопросы:

  • Какие преимущества у них есть друг у друга?
  • Что делает их лучшим или худшим выбором для проекта/разработчика?
  • Каковы основные различия между ними и их уникальность?

Ответы

Ответ 1

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

  • Введите аннотации и тип вывода.
  • Дженерики.
  • Интерфейсы, перечисления, пространства имен, модули и классы (последние два доступны в ES6).
  • Безопасный рефакторинг.

Насколько мне известно, Babel просто "переводит" новые функции ECMAScript в формат, поддерживаемый более старыми средами ECMAScript, Он подходит для разработчиков, которые хотят писать простой JavaScript, используя новые языковые функции.

Ответ 2

Виктор Савкин один из разработчиков angular 2 объясняет, почему они выбрали Typescript по другим технологиям.

http://victorsavkin.com/post/123555572351/writing-angular-2-in-typescript

последний раздел Почему Typescript?

"Сегодня для разработчиков frontend доступно множество опций: ES5, ES6 (Babel), TypeScript, Dart, PureScript, Elm и т.д. Итак, почему Typescript?

Давайте начнем с ES5. ES5 имеет одно существенное преимущество перед TypeScript: для него не требуется транспилер. Это позволяет упростить настройку сборки. Вам не нужно настраивать наблюдателей файлов, транслировать код, генерировать исходные карты. Это просто работает. Для многих небольших проектов эта простота перевешивает передовые возможности рефакторинга и навигации Typescript. Вы просто знаете, где находится весь код, и что он делает.

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

Elm и PureScript - это элегантные языки с мощными системами типов, которые могут доказать гораздо больше о вашей программе, чем Typescript. Код, написанный на Elm и PureScript, может быть большим, чем аналогичный код, написанный на ES5.

Каждый из этих вариантов имеет свои плюсы и минусы, но я думаю, что Typescript находится в сладком месте, что делает его отличным выбором для большинства проектов. Typescript занимает 95% полезности хорошего статически типизированного языка и переносит его в экосистему JavaScript. Вы все еще чувствуете, что вы пишете ES6: вы используете одну и ту же стандартную библиотеку, те же сторонние библиотеки, те же самые идиомы и многие из тех же инструментов (например, инструменты Chrome dev). Это дает вам много преимуществ, не вытесняя вас из экосистемы JavaScript.