2016-02-01 1 views
38

В выпуске AngularJS 2 в документации предлагается три языка: Typescript, Javascript и Dart.AngularJS 2 - Какой язык использовать? (Designer, Javascript, Dart)

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

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

  • Машинопись: 4 Учебники, 16 Developer Guides, 4 Тестирование руководства
  • Javascript: 0 Обучающие программы, 4 Developer Guides, 0 Тестирование руководства
  • Dart: 0 Учебники, 14 Developer Guides, 0 Тестирование руководства

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

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

+2

Это полностью зависит от вас, вопрос личного мнения и, следовательно, вне темы для SO. –

+0

Обратите внимание, что вы можете легко перевести учебники и примеры TypeScript в JavaScript с помощью компилятора TypeScript (или даже с сайта [http://www.typescriptlang.org/Playground]. Я ожидаю, что то же самое верно и для Дарта, поскольку он также «компилирует» JavaScript, но теперь я не понимаю, насколько это было бы понятно, никогда не использовал компилятор Dart, не знаю, есть ли у него «красивые» варианты. –

+1

@TJCrowder Я знаю, что это будет но я не знаю, какая замена стека будет более подходящей для этого вопроса. Кроме того, у stackoverflow есть самое большое сообщество разработчиков, и я считаю, что это правильный вопрос. – Elfayer

ответ

30

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

машинопись

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

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

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

JavaScript, ES5, ES6

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

Dart

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

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

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

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

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

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

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

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

+2

Большое спасибо за ваш ответ. Я не знал, что «TS используется для разработки самого Angular2» и что использование Javascript требует «workarouds». Я определенно попытаюсь пойти для TypeScript. ;) – Elfayer

+0

Ну теперь angular2 Dart project - отдельный проект, а не разговор из машинописной версии – ufk

+0

. Я не думаю, что это имеет значение. Посмотрим, как это получится. –

Смежные вопросы