Привет, я создал инструмент cli, который автоматически добавляет @ts-expect-error
в код с ошибками типов TypeScript.
В этой статье я объясню, как использовать этот инструмент.
https://www.npmjs.com/package/suppress-ts-errors
Как использовать
Просто запустите команду в проекте с tsconfig.json
.
Если вы используете свободную проверку типов, отредактируйте tsconfig.json, чтобы ужесточить проверку типов (например, strict: true
).
$ npx suppress-ts-errors
Это добавит комментарий @ts-expect-errors
к тому месту в проекте TypeScript, где есть ошибки типов, и подавит появление ошибок типов.
Конечно, код tsx
будет добавлен в формате комментария, соответствующем формату tsx
.
Кроме того, подкоманда vue
может быть использована для выделения ошибок типа в части SFC Vue.
$ npx suppress-ts-errors vue "./src/**/*.vue"
Эта опция также допускает гибкие настройки.
опция | по умолчанию | описание |
---|---|---|
-t, —tsconfig-path | ./tsconfig.json |
Путь к файлу tsconfig.json. |
-c, —comment-type | 1 |
Выбор типа вставляемого комментария. 1 — @ts-expect-error, 2 — @ts-ignore. |
-e, —error-code | true |
Добавить код ошибки к комментарию. Например, TS2345. |
Зачем мне это нужно
В настоящее время я работаю над проектом, где проверка типов не была ужесточена (нельзя установить strict: true
), и я хотел бы улучшить ситуацию.
Вообще, я думаю, что нужно «исправить все существующие ошибки типов, а затем сделать проверку типов более строгой», но мой текущий проект был изначально написан на JavaScript, а затем перенесен на TypeScript, поэтому существующих ошибок было слишком много, и потребовалось бы много человеко-часов, чтобы устранить их все。
В то же время новые функции быстро разрабатывались, и было легко создать новый код, содержащий ошибки типов. Чтобы решить эту проблему, мы хотели сначала ужесточить проверку типов, чтобы вновь добавляемый код был защищен от ошибок типов, а затем безопасно начать модификацию существующего кода в таком состоянии.
Для этого нам нужно было добавить комментарий (@ts-expect-error
или @ts-ignore
) ко всем существующим ошибкам типа, чтобы аннулировать их, и мы разработали этот инструмент CLI для автоматизации этого процесса.
Используемые технологии
- TypeScript
- ts-morph
- vitest
Весь код доступен на GitHub.
https://github.com/kawamataryo/suppress-ts-errors
Вот и все!
Тогда заканчивайте!
Спасибо, что прочитали.
Пожалуйста, отправьте мне сообщение, если вам нужно.
https://github.com/kawamataryo/suppress-ts-errors