Каковы плюсы и минусы использования ES5 JavaScript для приложений Angular 2 и для использования TypeScript? [закрытый]

Я работаю с Angular 1 уже много лет, и я начинаю учиться использовать Angular 2 вместо этого.

но прежде чем писать любую строку кода, я борюсь за то, должен ли я использовать TypeScript или JavaScript.

  • каковы плюсы и минусы использования TypeScript ?
  • что это за использование простого старого JavaScript ?

бонус-вопрос :

  • есть ли лучшая практика для выбор между JavaScript и TypeScript в угловом контексте 2 ?

Я не знаю TypeScript, но из нескольких фрагментов кода, которые я видел, кажется, основные функции:

  • тип намекая

  • механизмы прототипов, скрытые под наиболее распространенным синтаксисом используемого класса.

мои первые впечатления после просмотра веб-страниц :

Тип Намекает :

Мне нравится намекать на тип, но я думаю, что немного излишне использовать новый язык, чтобы добавить эту функцию, и это даст больше работы разработчикам для использования библиотек с свободным типом (из документов есть некоторые способы сделать это).

класс на основе styntax:

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

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

генерация кода :

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

В заключение :

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

2 ответов


на этот вопрос нет правильного ответа. Однако меня попросили работать над Angular2 в течение последнего месяца, и я занимался некоторыми исследованиями и разработками. Так что, возможно, некоторые моменты могут помочь вам:

  • намек на код все еще не созрел в IDEs, потому что ts все еще новый и его все еще меняется.

  • Я согласен, что они должны сосредоточиться на прототипе, который является силой и ориентацией JS, если они хотят ООП, они должны использовать вместо этого язык ООП, но что я могу сказать, никакое заблуждение об этом ничего не изменит.

  • Я работал над этим с помощью TS, и я могу сказать вам, по сравнению с js, вещь более читабельна, занимает намного больше времени для настройки, но tbh есть только одна вещь, которая должна иметь значение для вас и ее почему я пошел по пути TS:

на Angular 2 практически нет документации, даже официальный API еще не полностью написан, немного части, которые вы найдете здесь, и есть либо устаревшие с Альфа-синтаксисом, который больше не работает, либо написаны на TS. Мне даже пришлось пройти через код src, чтобы понять, как я должен называть что-то из-за отсутствия документации по нему. Поэтому, если вы начинаете сейчас, я настоятельно рекомендую вам пойти этим путем. Просто чтобы вы знали, во что ввязываетесь, проверьте угол.страница io и см. руководство разработчика, есть 4 раздела, написанные в JS и 15 в TS, очевидно, что они будут настаивать на TS.

" есть ли лучшая практика для выбора между JavaScript и TypeScript в угловом контексте 2 ?"

нет, это вопрос предпочтений, насколько велик ваш проект, сколько структуры вы хотите в своем коде, насколько легко вы хотите обнаружить дефекты за счет большего времени разработки и т. д...


Я думаю, что преимущество Typescript-это транспилер на Javascript. Когда есть новая функция в Javascript, транспилер может создавать лучший Javascript, пока мой Typescript не меняется.

что мне также нравится в Typescript, это сама проверка типа. Это уже спасло меня от ошибок кодирования просто потому, что типы не совпадали, а также типизированные массивы помогли мне структурировать как:

let members: array<People>.

это заставляет других кодеров предоставлять правый тип объекта.

можно также утверждать, что родной Javascript-это путь, так как он удаляет процесс транспилирования и является родным.

С угловой quickstart:

машинопись

import {Component} from 'angular2/core';

@Component({
    selector: 'my-app',
    template: '<h1>My First Angular 2 App</h1>'
})
export class AppComponent { }

в JavaScript

function(app) {
  app.AppComponent =
    ng.core.Component({
      selector: 'my-app',
      template: '<h1>My First Angular 2 App</h1>'
    })
    .Class({
      constructor: function() {}
    });
})(window.app || (window.app = {}));

как показано в примере выше, я предпочитаю Typescript, так как мой код выглядит чище и, следовательно, лучше понять.