Комментарии 18
Там же и отлаживались. Благодаря map файлам всё происходит очень органично и не замечаешь того, что работаешь с TypeScript, а не JavaScript.
Только хром часто норовит при остановке на брэйкпоинте открыть js файл и не показать где остановился (потому, что при наличии map-файлов он показывает бряку только в ts) — тогда приходится либо в стэке смотреть, либо руками открывать ts файл.
Может это как-то лечится?
+4
Замечал что-то подобное. Мне обычно помогает дабл клик по текущему фрему в стеке: переходит на нужную строку.
+2
На моей практике (2-й проект на 100к+ строк кода, начиная с версии 0.8) оказалось удобнее вообще с map файлами не заморачиваться и отлаживать сразу js, т.к. код очень близок.
+6
НЛО прилетело и опубликовало эту надпись здесь
Мне вот непонятно как классы помогут сделать интеллисенс и проверку типов.
0
Ну, например, есть четко определяемый список полей и методов, иерархия наследования и реализация интерфейсов. Компилятору это может очень многое подсказать.
+1
Использую TypeScript под Visual Studio с января. Сейчас у меня где-то 400кб кода на TS, пишу UI под react.js.
В целом — must have. Интеллисенс, лямбды, статическая типизация — и всё почти бесплатно.
Насчет «почти бесплатно»:
— типизация, вывод типов и ошибки компилятора, иногда требуют заметного включения мозга чтобы понять что ему надо. Чтобы начать шарашить типизацию на полную, нужно учиться и привыкать. Но в любом случае можно дописать ':any' где TS делает непонятное.
— у компилятора до 1.0.1 были серьезные проблемы с производительностью. Но и сейчас остаются косяки. Например, я клал компилятор в нокдаун конструкцией типа export var x = genericTypedFunctionFromOtherModule(). Обходится просто — не писать код, на котором виснет компилятор. Надеюсь в следующих версиях они это починят.
— React.js пока не получается нормально типизировать. Экстраполируя — типизировать получается не всё что хочется.
— небольшие проблемы с отладкой в хроме: не подсвечивается строка при остановке на брейкпоинте (после step over/клика по стеку — все ок); нельзя писать лямбды в консольке, а хочется :)
Несмотря на эти минусы, плюсы их сильно перевешивают.
В целом — must have. Интеллисенс, лямбды, статическая типизация — и всё почти бесплатно.
Насчет «почти бесплатно»:
— типизация, вывод типов и ошибки компилятора, иногда требуют заметного включения мозга чтобы понять что ему надо. Чтобы начать шарашить типизацию на полную, нужно учиться и привыкать. Но в любом случае можно дописать ':any' где TS делает непонятное.
— у компилятора до 1.0.1 были серьезные проблемы с производительностью. Но и сейчас остаются косяки. Например, я клал компилятор в нокдаун конструкцией типа export var x = genericTypedFunctionFromOtherModule(). Обходится просто — не писать код, на котором виснет компилятор. Надеюсь в следующих версиях они это починят.
— React.js пока не получается нормально типизировать. Экстраполируя — типизировать получается не всё что хочется.
— небольшие проблемы с отладкой в хроме: не подсвечивается строка при остановке на брейкпоинте (после step over/клика по стеку — все ок); нельзя писать лямбды в консольке, а хочется :)
Несмотря на эти минусы, плюсы их сильно перевешивают.
+6
Тоже использую TypeScript в продакшене и крайне доволен. Из неожиданных подводных камней запомнилась строчка инициализации списка объектов:
Много нервов было потеряно в попытках понять, почему код не работает. Истина оказалась на стыке услужливости компилятора TypeScript и гибкости библиотеки Lo-Dash: лямбда без скобок превращается в функцию с оператором
В остальном согласен с остальными комментаторами: TypeScript еще не избавился от детских болезней, но писать на нем уже куда приятнее чем на JS.
_.forEach(items, i => i.isSelected = false);
Много нервов было потеряно в попытках понять, почему код не работает. Истина оказалась на стыке услужливости компилятора TypeScript и гибкости библиотеки Lo-Dash: лямбда без скобок превращается в функцию с оператором
return
вне зависимости от содержимого, а итератор Lo-Dash прекращает перебор вариантов, когда callback явно возвращает false…В остальном согласен с остальными комментаторами: TypeScript еще не избавился от детских болезней, но писать на нем уже куда приятнее чем на JS.
+1
На мой взгляд, язык решает минимум две задачи:
— низкий порог вхождения для шарповцев;
— клиновая иерархия классов в сложном приложении.
В тоже время, есть и обратная сторона, тем кто не любит MS Stack, придется прибегать к строгости языка, хотя и на чистом JS все прекрасно пишется, если правильно спроектировать объекты.
— низкий порог вхождения для шарповцев;
— клиновая иерархия классов в сложном приложении.
В тоже время, есть и обратная сторона, тем кто не любит MS Stack, придется прибегать к строгости языка, хотя и на чистом JS все прекрасно пишется, если правильно спроектировать объекты.
0
Основными причинами по которым мы выбрали TypeScript были:
1. Близкий к C# синтаксис.
Собственно, можно дальше не читать.
0
Скажите а время компиляции транслирования в JS код уже наладили, а то я пол года назад начал на TS с gulp и watch плагином, но потом откатился на JS из за слишком долгого транслирования.
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Интервью с разработчиками на TypeScript