alienworkshop
@alienworkshop

ES 2015, Coffeescript или TypeScript? Что лучше и почему?

Ребята с опытом, на чём лучше писать, ES 2015, Coffeescript или TypeScript? Хотелось бы подробных ответов.
  • Вопрос задан
  • 2522 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
ES2015. и babel, поскольку это стандарт (Chrome50 поддерживает его на 91%). Ну и да, можно использовать фичи из ES2016 вроде async/await для улучшения читабельности кода.

TypeScript это ES2015 + ES2016 stage1 + опциональная возможность объявлять типы, благодаря которой появляется возможность проводить статический анализ на этапе сборки. Это очень выгодно для очень больших проектов (именно поэтому Angular2 написан на нем, это ооочень большой проект).

CoffeScript на сегодня не актуален, возможно этот проект получит дальнейшее развитие.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
Я писал на CoffeeScript, а потом сбежал на LiveScript. Синтаксис очень похож, но можно компактно определять функции без возвращающего значения и множество удобностей типа стандартного формата комментариев как в JavaScript, которых в CoffeeScript нет.
ES2015 стандарт, но поскольку:
1) фичи которые только синтаксический сахар поверх ES5 менее удобные чем в CoffeeScript/LiveScript
2) фичи которые реально новые и не транслируются в ES5 и использовать нельзя ибо нет поддержки браузерами
то получается что ES2015 это просто ещё один транслируемый язык на одном уровне с CoffeeScript/LiveScript, просто менее удобный. А потому не вижу смысла использовать ES2015. С одной стороны вроде стандарт, а с другой стороны он по факту используется только как сахар и при этом гораздо менее удобный чем альтернативы.

TypeScript имеет другой подход, но я его не использовал, не подскажу.
Ответ написан
alienworkshop
@alienworkshop Автор вопроса
У Typescript довольно необычный способ указания типа данных для переменной:
class Student {
    fullname : string;
    constructor(public firstname, public middleinitial, public lastname) {
        this.fullname = firstname + " " + middleinitial + " " + lastname;
    }
}

interface Person {
    firstname: string;
    lastname: string;
}


www.typescriptlang.org/Tutorial
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы