Как стать автором
Обновить

Комментарии 18

Там же и отлаживались. Благодаря map файлам всё происходит очень органично и не замечаешь того, что работаешь с TypeScript, а не JavaScript.

Только хром часто норовит при остановке на брэйкпоинте открыть js файл и не показать где остановился (потому, что при наличии map-файлов он показывает бряку только в ts) — тогда приходится либо в стэке смотреть, либо руками открывать ts файл.
Может это как-то лечится?
Замечал что-то подобное. Мне обычно помогает дабл клик по текущему фрему в стеке: переходит на нужную строку.
На моей практике (2-й проект на 100к+ строк кода, начиная с версии 0.8) оказалось удобнее вообще с map файлами не заморачиваться и отлаживать сразу js, т.к. код очень близок.
вполне себе вариант. и полная уверенность, что отлаживаешь именно то, что исполняется в браузере.
НЛО прилетело и опубликовало эту надпись здесь
Мне вот непонятно как классы помогут сделать интеллисенс и проверку типов.
Ну, например, есть четко определяемый список полей и методов, иерархия наследования и реализация интерфейсов. Компилятору это может очень многое подсказать.
Классы — это просто другой синтаксис к старому-доброму class.prototype.method = function(). Интерфейсов никаких там нет, по понятной причине: JS динамически-типизированный.

Короче никаких подвижек в сторону типизации в ES6 не будет.
Использую TypeScript под Visual Studio с января. Сейчас у меня где-то 400кб кода на TS, пишу UI под react.js.

В целом — must have. Интеллисенс, лямбды, статическая типизация — и всё почти бесплатно.

Насчет «почти бесплатно»:
— типизация, вывод типов и ошибки компилятора, иногда требуют заметного включения мозга чтобы понять что ему надо. Чтобы начать шарашить типизацию на полную, нужно учиться и привыкать. Но в любом случае можно дописать ':any' где TS делает непонятное.
— у компилятора до 1.0.1 были серьезные проблемы с производительностью. Но и сейчас остаются косяки. Например, я клал компилятор в нокдаун конструкцией типа export var x = genericTypedFunctionFromOtherModule(). Обходится просто — не писать код, на котором виснет компилятор. Надеюсь в следующих версиях они это починят.
— React.js пока не получается нормально типизировать. Экстраполируя — типизировать получается не всё что хочется.
— небольшие проблемы с отладкой в хроме: не подсвечивается строка при остановке на брейкпоинте (после step over/клика по стеку — все ок); нельзя писать лямбды в консольке, а хочется :)

Несмотря на эти минусы, плюсы их сильно перевешивают.
Тоже использую TypeScript в продакшене и крайне доволен. Из неожиданных подводных камней запомнилась строчка инициализации списка объектов:

_.forEach(items, i => i.isSelected = false);

Много нервов было потеряно в попытках понять, почему код не работает. Истина оказалась на стыке услужливости компилятора TypeScript и гибкости библиотеки Lo-Dash: лямбда без скобок превращается в функцию с оператором return вне зависимости от содержимого, а итератор Lo-Dash прекращает перебор вариантов, когда callback явно возвращает false…

В остальном согласен с остальными комментаторами: TypeScript еще не избавился от детских болезней, но писать на нем уже куда приятнее чем на JS.
Раз уж модифицируете исходный массив, используйте map, это должно решить все непонимания
НЛО прилетело и опубликовало эту надпись здесь
На мой взгляд, язык решает минимум две задачи:
— низкий порог вхождения для шарповцев;
— клиновая иерархия классов в сложном приложении.
В тоже время, есть и обратная сторона, тем кто не любит MS Stack, придется прибегать к строгости языка, хотя и на чистом JS все прекрасно пишется, если правильно спроектировать объекты.
Основными причинами по которым мы выбрали TypeScript были:

1. Близкий к C# синтаксис.


Собственно, можно дальше не читать.
Почему?
Например, потому, что если бы не было этого пункта, то ожидалось бы больше технических причин с разборами и сравнениями с аналогиями, почему именно TS. А так — почему — близкий синтаксис, уже ясно, что это есть первопричина и особенно с тем же CS никто и не сравнивал.
Скажите а время компиляции транслирования в JS код уже наладили, а то я пол года назад начал на TS с gulp и watch плагином, но потом откатился на JS из за слишком долгого транслирования.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий