Машинопись на самом деле не относится к ООП. ООП ортогонален типам (думаю, Java против Smalltalk). Typcript - это проверка статического типа: используете ли вы строку, в которой вы думаете, что используете массив? Я фактически исправил ошибку в коде сотрудника в этих строках только в прошлую пятницу, когда он использовал цикл for
по длине того, что, по его мнению, было массивом (Array.prototype.forEach делает эту ошибку легко найти).
Статическая проверка типов стоит усилий по добавлению аннотаций типа по всей вашей кодовой базе? Это призыв к суждению.
ES6/ESNext, с другой стороны, только плоское предложение предлагает вам лучшие способы написания кода. Я не вижу, как кто-то может сделать аргумент, что
function(arr) {
var foo = arr[0];
var bar = arr[1];
return foo + bar;
}
лучше
([foo, bar]) => foo + bar
же для многих других функций, если вы пишете в функциональном стиле ваших кодовый (как у меня) есть вероятно, засорены
Object.keys(someObj)
.map(k => someObj[k])
.filter...
Теперь у вас только есть Object.values
. Плюс около миллиона других функций.
Ваш вопрос, как задать, какой IDE использовать. ES6 или TS - это выбор, который необходимо выполнить вашей команде. Факт в том, что TS является надмножеством ES5 с особенностями ES6. Итак, все, что вы можете сделать в ES6, вы, вероятно, можете сделать и в TS, но не наоборот. Что касается ООП: компоненты, директивы и службы - это все классы. – rinukkusu
Стандартным языком de facto для angular2 является TypeScript. Структура написана в TS, документация по умолчанию используется в TypeScript, а код намного удобнее и удобнее писать в TS. Просто используйте TypeScript, на самом деле это не проблема. –
Непонятно, собираетесь ли вы использовать родной ES6 или перевести его с помощью Babel. В последнем случае вы не ограничены ES6 и можете использовать набор функций ES.next (который более или менее такой же, как в TS, OOP-мудрый). Внедрение зависимостей A2 было разработано с учетом TS, оно позволяет в большинстве случаев пропускать '@ Inject' decorator и' this.injectedService = injectedService', это основное преимущество TS в контексте разработки A2. Для ES5/ES6 vs ES.next, [см. Этот ответ] (http://stackoverflow.com/a/39029435/3731501). – estus