Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   TypeScript vs ES6 (https://javascript.ru/forum/misc/54953-typescript-vs-es6.html)

nerv_ 05.12.2015 12:33

Предлагаю переместить тему в офффтопик

В данный момент всерьез подумываю о переходе с es6 на TypeScript.

Уже ловлю себя на том, что использую самописные функции для строгой типизации :)

Ниже перечислю ключевые (для меня) моменты

https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-17

фичи >=1.7
- async/await
- модификаторы public / private
- интерфейсы
- абстрактрые классы
- статическая типизация
- модули es6
- декораторы

Вопрос к тем, кто уже использует TS. Правильно понимаю, что это все там есть и нормально работает?

tsigel 06.12.2015 12:00

за исключением async/await все есть и работает.
Дерораторы очень удобны, могут быть использованы как для метода так и для класса в целом. Есть tslint, в котором можно очень гибко настроить коде стайл команды, вплоть до очередности статических/приватных методов в классе. Так же можно настроить чтобы нельзя было не указывать типы переменных/возвращаемых методами значений. Все это позволяет добавить строгости, заставить команду соблюдать общий code-style. Самое главное на мой взгляд это рефактор при полном указании типов, при рефакторе js кода и не полном покрытии unit тестами можно пропустить ошибку забыв внести изменения в зависимые файлы, с typescript такого быть не может, в связи с тем что ошибка будет указана на этапе компиляции кода.

Ну и генератор документации по typescript коду тоже очень хорошо работает, ведь в ts 80% документации берется прямо из кода, в то время как писать jsDoc и поддерживать его в должном состоянии js нас не обязывает.

vasa_c 25.12.2015 15:34

Цитата:

tslint, в котором можно очень гибко настроить коде стайл команды
На мой взгляд это и не здорово. Будут вместо того, чтобы делом заниматься, каждый свой код-стайл настраивать.

Раз уж делают JS строже, так и для код-стайла строгий стандарт бы ввели без всяких настроек :)

А по TypeScript - когда миксины сделают, так цены ему не будет )

tsigel 25.12.2015 16:04

vasa_c,
Отсутствие миксинов ни разу не мешает.

Да и линтер настраивает не каждый сам себе, а 1 раз на проект и вся команда.

FanAizu 17.03.2016 17:24

Цитата:

Сообщение от nerv_ (Сообщение 398810)
Предлагаю переместить тему в офффтопик

В данный момент всерьез подумываю о переходе с es6 на TypeScript.

Уже ловлю себя на том, что использую самописные функции для строгой типизации :)

Ниже перечислю ключевые (для меня) моменты

https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#typescript-17

фичи >=1.7
- async/await
- модификаторы public / private
- интерфейсы
- абстрактрые классы
- статическая типизация
- модули es6
- декораторы

Вопрос к тем, кто уже использует TS. Правильно понимаю, что это все там есть и нормально работает?

И что вы думаете на данный момент о TypeScript-е? Уже долгое время все метаюсь и не знаю, что же выбрать для нового проекта, юзать es6/7 + babel или же писать на TypeScript-е. Уже давно бы начал писать на es6/7, но, если вдруг TypeScript станет мэйнстримом и де-факто стандартом разработки приложений, то есть большая часть проектов будет писать именно на нем, то я в каком-то смысле проиграю. С другой стороны, если TypeScript так и не взлетит, а мейнстримом останется es6/7 + babel, то начав сейчас писать на TypeScript-е, буду чувствовать себя дураком, что заюзал невзлетевшую штуку. Может кто-нибудь высказать свои мысли по этому поводу?

nerv_ 17.03.2016 21:45

Почему я НЕ являюсь фанатом TypeScript

FanAizu 18.03.2016 11:58

Цитата:

Сообщение от nerv_ (Сообщение 411265)

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

yazonnile 18.03.2016 12:37

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


Часовой пояс GMT +3, время: 00:59.