wizzard: (Default)
wizzard ([personal profile] wizzard) wrote2014-09-12 11:02 pm

TypeScript-2014

Тайпскрипту скоро исполняется два года (если считать с первого публичного релиза).

Появилась инфраструктура, то-сё. Ну и в общем - да, он работает. Позволяет лопатить неслабые количества JS-кода в одиночку и в команде, и отлично интегрируется с существующей лапшой. Хотя есть нюансы.

1. Поддержки IDE как не было, так и нет :) Ну то есть Sublime Text рулит, бибикает и бегает кругами как вокруг Visual Studio, так и вокруг JetBrains WebStorm'a. Потому что студиевский typescript language service тормозит и виснет, а вебштормовский, ммм, существенно быстрее, но при этом выводит типы неправильно, ну и толку с него такого? :)
2. Сложившееся комьюнити с DefinitelyTyped, скажем так, странное. Дефинишны тоже очень разного качества и разных парадигм. Но и на том спасибо.
3. Собственно, если код использует "только cjs модули" + какой-нибудь browserify (мы сделали свой велосипед, впрочем) - всё зашибись. Или если "только лапша из скрипт-тэгов", то тоже отлично работает.
А если смешивать - то области видимости тоже психоделически смешиваются, и править код становится неудобно, на малейший чих куча ошибок при компиляции. Хотя, с другой стороны, ну логично же.

А, да, чего я это пишу. Наконец-то придумали convention, как нормально раздельно компилить пакаджи, чтобы результат можно было npm install, и подключенные пакаджи продолжали типизированно линковаться с их пользователями. Почти автомагически (тайпинги генерятся сами, плюс обертка которая правильно ремапит их в cjs). Очень радует.

Ну то есть еще чуть-чуть, и в JS появится нормальное понятие "deployment unit" (aka CLR "assembly"), которую можно подключить и быть более-менее уверенным, что если интерфейс поменяется - то это будет видно сразу при компиляции, и для этого не надо каждый раз лопатить компилятором мегабайты файлов, а достаточно просто проматчить type definitions (.d.ts)

Такое вот.

Post a comment in response:

(will be screened)
(will be screened if not validated)
If you don't have an account you can create one now.
No Subject Icon Selected
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org