Подтвердить что ты не робот

AngularJS 2 - Какой язык использовать? (Typescript, Javascript, Dart)

При выходе AngularJS 2 в документации предлагается три языка: Typescript, Javascript и Dart.

Я использую только Javascript EcmaScript 5 и задаюсь вопросом, какова сила и слабость этих трех?

В то время, когда этот вопрос задан, документация более развита на Typescript и довольно тонкая на других (даже на их собственном языке Dart):

  • Typescript: 4 учебника, 16 советов разработчиков, 4 руководства по тестированию
  • Javascript: 0 учебников, 4 руководства разработчика, 0 руководств по тестированию
  • Dart: 0 учебных пособий, 14 советов разработчиков, 0 руководств по тестированию

Должен ли я изменить свою привычку разрабатывать с помощью Javascript и следить за тем, что предлагает Angular 2, используя Typescript? Это действительно изменяет концепции Javascript?

AngularJS 2.0 официальный сайт

4b9b3361

Ответ 1

Dart упрощает запуск, потому что все, что вам нужно, обеспечивается экосистемой Дартс из одной руки (язык, управление пакетами, сборка,...).

TypeScript

Для TS есть большинство доступных ресурсов (документация,...), потому что существует огромная пользовательская база.

В TS создается тэг Dart и JS версии Angular.
Кажется, есть много проблем, чтобы запустить проект Angular + TS (см. Angular2 вопросы здесь, на SO), но есть семенные проекты, доступные там, где все уже настроено. Я не знаю деталей, потому что сам использую только Дарта.

Для TS теперь существует Angular CLI, который значительно улучшает опыт разработчика для Angular2 с помощью TypeScript.

JavaScript, ES5, ES6

Если вы пурист JS, это может быть правильный язык для вас. Если нет (если бы вы были, вероятно, не задавали бы этот вопрос), то я совершенно уверен, что вам лучше использовать Dart или TS. Angular использует аннотации типов несколькими способами. При использовании JS необходимы "обходные пути", в противном случае достаточно простого аннотации типа (в основном, инъекции зависимостей).

Дарт

Dart - хороший язык с набором инструментов, которые хорошо работают вместе. Многие проблемы, вызванные JS/TS, решаются элегантно для Dart.

Начиная с 2016/05 Angular2 Dart - независимый проект и сильно отличается от версий TS и JS (по состоянию на 2016/10).

  • Модуль маршрутизатора, который несколько раз был заменен в TS, чтобы заставить его работать с автономной компиляцией шаблонов, не был заменен в Dart, потому что в Dart ленивая загрузка также отлично работает с "старым" маршрутизатором.

  • ... а также NgModule не был введен в Дарт по той же причине.

  • Новый модуль Forms, созданный для TS, не был перенесен (пока) в Dart.

  • У Dart была встроенная компиляция шаблонов с самого начала, но не поддерживающая браузер-платформу-динамику для компиляции компонентов во время выполнения.

  • Новый модуль Dependency Injection, по-видимому, работает для Dart на основе Dagger2 (в настоящее время он еще не доступен) для замены системы DI, которая была автоматически сгенерирована из кода TypeScript.

  • Angular2 Dart уделяет особое внимание размеру сборки и производительности исполнения, но поддержка AFAIK для поддержки нескольких платформ (например, рендеринг на стороне сервера).