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

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

Спасибо! Кстати при помощи Typescript Compiler API такую функциональность, как в этой библиотеке тоже несложно реализовать.
Насколько я понимаю, в статье, на которую вы ссылаетесь, речь идет про другие плагины.

Задачу вполне можно было решить разделением бэкэнда и фронтеда (просто запустив их раздельно). Раньше тоже объединял GraphQL API и Nuxt.js в один процесс, неудобств значительно больше, чем выгоды от их объединения.

Вы абсолютно правы! В большинстве случаев именно так и стоит поступать. Но тот подход, который я здесь описываю тоже в некоторых случаях имеет право на жизнь. Для небольшого проекта, который должен работать на low-end платформе, например. Насчет неудобств тоже согласен, как раз предлагаемый в статье подход позволяет часть из них устранить.
TS, на мой взгляд, слишком медленный и неудобный для разработки. При каждом изменении проверять все типы — значит блокировать полет мысли при разработке и замедлять тестирование работы в реальном окружении. Поэтому я все же предпочитаю при кодинге применять babel с плагином, вырезающим типы, а в качестве хелпера использовать встроенные в IDE подсказки тайпскрипта. Работает намного быстрее и не блокирует.
А проверку типов во всем коде можно выполнять на precommit и в ci
НЛО прилетело и опубликовало эту надпись здесь
А в процессе "полёта мысли" да он неудобен.

В процессе полёта мысли можно начать складывать слонов с табуретками и далеко не сразу это заметить получая неверный результат, выглядящий вполне корректно. Потери времени в результате могут быть значительно больше. Ну и плюс отсутствие автодополнения. Чистый js может выигрывать только когда совсем уж мелкую утилитную функцию на пару строк нужно быстренько сбацать.

НЛО прилетело и опубликовало эту надпись здесь
Не совсем понял, что вы имеете в виду. Поясните, что за ноды схем?
НЛО прилетело и опубликовало эту надпись здесь
TS, на мой взгляд, слишком медленный и неудобный для разработки. При каждом изменении проверять все типы — значит блокировать полет мысли при разработке и замедлять тестирование работы в реальном окружении.

Медленный в каком смысле? Медленно компилирует или медленнее и неудобнее идет разработка, потому что надо прописывать типы? Необязательно ведь чтобы при каждом изменении происходила проверка всех типов, у tsc есть инкрементальная сборка и watch-mode, работает очень быстро.
Поэтому я все же предпочитаю при кодинге применять babel с плагином, вырезающим типы, а в качестве хелпера использовать встроенные в IDE подсказки тайпскрипта. Работает намного быстрее и не блокирует.

Подход интересный! Т.е. получается, проверка типов у вас в процессе разработками есть средствами IDE? Речь идет про разработку для фронта или под ноду? Можно ссылку на плагин, который вы используете?
Проверка типов, подсветка, автодополнение для TS — есть в используемом мной WebStorm без дополнительных плагинов, насколько знаю — и в других IDE. Медленнее идет разработка, потому что при пересборке при любой ошибке компиляция падает и программа не работает, а то, что типы не указаны говорит и IDE, никакого смысла параллельно проверять компилятором не вижу — когда будет написана рабочая версия кода с несколькими итерациями рефакторинга я покрываю код типами и при коммите все типы в программе проверяются.
Это я и назвал «неблокирующим режимом», который помогает, а не мешает. Использую как для разработки для ноды, так и для фронта

Ошибки tsc не препятствуют выдаче javascript-кода. Т.е. даже неверный код вида const x: number = "foobar"; все равно скомпилируется, но не протайпчекается. У вас наверняка включена опция noEmitOnError — отключите ее.

Да, годное решение для разработки на ноде, если не отвлекают тексты ошибок в консоли процесса. Так как использую тайпчекинг только на финальной стадии с включенным noEmitOnError, то не подумал о таком варианте.

Здравствуйте! Спасибо за статью! У меня такой вопрос. Вот я создал объект с программой:

const program = createProgram(['./src/index.ts'], compilerOptions, compilerHost);

Почему в исходниках

program.getSourceFiles()

нет файлов *.ts ? Я посмотрел - там только файлы *.d.ts причем из node_modules, а вот файлов моего проекта из каталога src там нет. А я их хотел видеть в sourceFiles

Разобрался-таки. Оказывается нельзя вот так писать: './src/index.ts'. Нужно абсолютный путь к файлу подставлять.

Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории