Pull to refresh

Comments 19

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

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

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

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

UFO just landed and posted this here
Не совсем понял, что вы имеете в виду. Поясните, что за ноды схем?
UFO just landed and posted this here
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'. Нужно абсолютный путь к файлу подставлять.

Sign up to leave a comment.

Articles