Должен ли VSCode сообщать об ошибках для файлов TS, которые исключены из компиляции? - PullRequest
0 голосов
/ 11 сентября 2018

Я подал это Отчет об ошибке с VSCode, потому что я исключил *.spec файлы из компиляции, так как я не хочу включать файлы в дистрибутив NPM.

Я все еще хотел бы видеть, что они компилируются правильно, хотя с помощью инструмента VSCode.

В существующем виде VSCode intellisense сообщает, что импорт, доступный по пути, не может быть импортирован, и это приводит к множеству ошибок, окрашивает файлы спецификации проекта в красный и т. Д.

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

Я запросил сортировку из VSCode, но пока проблема остается закрытой, и я хотел посмотреть, что делают другие на SO. Это ошибка или вывод в отчете верен в том виде, в каком он есть?

1 Ответ

0 голосов
/ 11 сентября 2018

IIUC, прямо сейчас VS Code использует один экземпляр языковой службы для файлов, не включенных в tsconfig.json (включая случай, когда tsconfig.json вообще не существует) с параметрами компилятора по умолчанию, а когда tsconfig.json существует, он использует экземпляр службы второго языка, который активно загружает все включенные файлы и использует указанные параметры компилятора. Я полагаю, вы предлагаете, чтобы, когда существует tsconfig.json, первый экземпляр языковой службы должен использовать параметры компилятора из tsconfig.json, но иметь то же поведение при загрузке файлов, что и сейчас. Это приведет к незначительному увеличению сложности, и, честно говоря, опыт редактирования файлов, исключенных из tsconfig.json, когда существует tsconfig.json, все равно будет довольно запутанным: некоторые из ваших файлов будут видеть глобальные определения, а другие - нет, и "найти все ссылки "даст вам частичные результаты. Мне кажется, что ваше предложение является приемлемой альтернативой статус-кво, но я не понимаю, почему вы боретесь за это с командой VS Code, а не просто создаете два файла tsconfig.json, что является явным и дает вам единое редактирование опыт, который вы на самом деле хотите. (Или вы предлагали, чтобы существовала единая языковая служба, которая игнорирует исключения и охотно загружает все .ts(x?) файлы в каталоге проекта? Я совершенно уверен, что это не будет работать, поскольку это вызовет проблемы во многих сценариях.)

...