Моя ежедневная работа - разработка клиентов с использованием AngularJS. Мы оцениваем, хотим ли мы использовать TypeScript. Я провел некоторые исследования в области машинописи, и почти во всех нужных мне пакетах JavaScript должны быть файлы определений типов. Я обнаружил, что это не очень удобно, особенно если я хотел бы попробовать что-то новое, и у них нет определения для этого. Это действительно расстраивает. (Даже текущее определение jQuery доставляет мне некоторые проблемы, если я хочу использовать бета-версию 1.5). Я начал смотреть на ES6, и он похож на TypeScript. Должен ли я просто использовать ES6 вместо этого? Кроме того, я слышал, что angular 2 будет иметь полную поддержку TypeScript, будет ли это одной из причин, почему я должен остаться с ним?
источник
declare var MyNewLibraryName: any;
используйте ее по своему усмотрению без жалоб компилятора.Ответы:
Я использовал Typescript в своем текущем угловом проекте около полутора лет, и хотя время от времени возникают некоторые проблемы с определениями, а затем проект DefiniteTyped проделывает потрясающую работу, не отставая от последних версий самых популярных библиотек.
Сказав, что при переходе с ванильного JavaScript на TS есть определенная кривая обучения, вы должны учитывать способность вас и вашей команды осуществить этот переход. Кроме того, если вы собираетесь использовать angular 1.x, большинство примеров, которые вы найдете в Интернете, потребуют от вас перевести их с JS на TS, и в целом сейчас не так много ресурсов по использованию TS и angular 1.x вместе. ,
Если вы планируете использовать Angular 2, есть много примеров использования TS, и я думаю, что команда продолжит предоставлять большую часть документации в TS, но вам определенно не обязательно использовать TS для использования Angular 2.
ES6 имеет некоторые приятные функции, и я лично планирую познакомиться с ним, но я бы не стал считать его готовым к использованию языком на данном этапе. Главным образом из-за отсутствия поддержки со стороны современных браузеров. Конечно, вы можете написать свой код в ES6 и использовать транспортер для его переноса в ES5, что сейчас очень популярно.
В целом, я думаю, что ответ сводится к тому, что вам и вашей команде удобно учиться. Я лично думаю, что и TS, и ES6 будут иметь хорошую поддержку и долгое будущее, но я предпочитаю TS, потому что вы стремитесь получить языковые возможности быстрее, и сейчас поддержка инструментов (на мой взгляд) немного лучше.
источник
Дерево решений между ES5, ES6 и TypeScript
Подробнее
ES5 - это JavaScript, который вы знаете и используете в браузере сегодня, он такой, какой он есть, и не требует этапа сборки, чтобы превратить его в нечто, что будет работать в современных браузерах
ES6 (также называемый ES2015 ) - это следующая итерация JavaScript, но она не работает в современных браузерах. Существует довольно много транспортеров, которые экспортируют ES5 для работы в браузерах. Это все еще динамический (читай: нетипизированный) язык.
TypeScript предоставляет опциональную систему набора текста, одновременно используя функции из будущих версий JavaScript (ES6 и ES7).
Примечание: многие из транспортеров (например, babel, TypeScript) позволят вам использовать функции из будущих версий JavaScript сегодня и экспортировать код, который все еще будет работать в современных браузерах.
источник