Должен ли я использовать typescript? или я могу просто использовать ES6?

Моя ежедневная работа - это клиентский разработчик с помощью AngularJS. Мы оцениваем, хотим ли мы пойти с TypeScript. Я провел некоторое исследование по typescript, и почти каждый пакет JavaScript, который мне нужен, должен иметь файлы типов определений. Я обнаружил, что это не очень удобно, особенно если я хотел бы попробовать что-то новое, и у них нет определения для него. Это действительно расстраивает. (Даже текущее определение jQuery дает мне некоторые проблемы, если я хочу использовать typescript 1.5 beta). Я начал смотреть на ES6, и он похож на TypeScript. Должен ли я просто использовать ES6? Кроме того, я слышал, что angular 2 будет иметь полную поддержку TypeScript, это будет одна из причин, по которой я должен остаться с ней?

Ответ 1

Я использую Typescript в моем текущем проекте angular около полутора лет и, хотя есть несколько проблем с определениями, время от времени DefinitelyTyped делает замечательную работу по поддержанию последних версий самых популярных библиотек.

Сказав, что существует определенная кривая обучения при переходе с ванильного JavaScript на TS, и вы должны учитывать способность вас и вашей команды совершать этот переход. Также, если вы собираетесь использовать angular 1.x, большинство примеров, которые вы найдете в Интернете, потребует перевода их из JS в TS, и в целом нет много ресурсов на использование TS и angular 1. x вместе прямо сейчас.

Если вы планируете использовать angular 2, есть много примеров использования TS, и я думаю, что команда продолжит предоставлять большую часть документации в TS, но вам, разумеется, не нужно использовать TS для использования angular 2.

В ES6 есть несколько приятных функций, и я лично планирую ознакомиться с ним, но на данном этапе я бы не стал считать это готовым к производству языком. В основном из-за отсутствия поддержки со стороны текущих браузеров. Подробнее см. . Конечно, вы можете написать свой код в ES6 и использовать транспилер, чтобы получить его на ES5, который, похоже, сейчас очень популярен.

В целом, я думаю, ответ будет сводиться к тому, что вы и ваша команда усердно учитесь. Я лично думаю, что и TS, и ES6 будут иметь хорошую поддержку и длинные фьючерсы, я предпочитаю TS, потому что вы, как правило, быстрее получаете языковые функции, и сейчас поддержка инструментария (на мой взгляд) немного лучше.

Ответ 2

Дерево решений между ES5, ES6 и TypeScript

Нельзя ли сделать шаг сборки?

  • Да - Использовать ES5
  • Нет - продолжайте движение

Вы хотите использовать типы?

  • Да - Использовать TypeScript
  • Нет - Использовать ES6

Подробнее

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

ES6 (также называемый ES2015) - это следующая итерация JavaScript, но он не работает в современных браузерах. Существует довольно много транспиляторов, которые будут экспортировать ES5 для работы в браузерах. Он по-прежнему является динамическим (читаемым: нетипизированным) языком.

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

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