Каковы плюсы и минусы использования 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-это путь, так как он удаляет процесс транспилирования и является родным.
машинопись
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, так как мой код выглядит чище и, следовательно, лучше понять.