Ответ 1
Перефразируя вопрос кратко:
Конечно, [включение skipLibCheck] снижает целостность типизации вашего приложения?
Я бы согласился, что да, это так. Однако, если альтернативой является приложение, которое не компилируется, оно становится удобным флагом.
В то время как сам Typescript является достаточно зрелым, сообщество машинописцев все еще относительно молодо. Существуют определения типов, доступные для множества библиотек и даже некоторых собственных библиотек машинописи, но они могут быть несовместимы друг с другом по ряду причин.
Вы можете импортировать библиотеку, типизация которой построена с менее строгим tsconfig, чем вы хотели бы - на что ваш компилятор может жаловаться, когда вы пытаетесь его использовать.
Вы можете найти две библиотеки, определяющие одинаковые типы, но несовместимые. Я импортировал несколько библиотек, которые предоставили свои собственные типы для Polyfill of Buffer
, и все мое приложение не смогло скомпилироваться из-за их несовместимости.
Включение --skipLibCheck
может помочь обойти эти проблемы. Включение этого параметра не позволит Typescript проверять тип всех импортируемых библиотек. Вместо этого Typescript будет только проверять тип кода, который вы используете против этих типов. Это означает, что, пока вы не используете несовместимые части импортированных библиотек, они будут хорошо компилироваться.
tl; dr, Да, --skipLibCheck
ухудшает проверку типов, и в идеале мы бы ее не использовали. Но не каждая библиотека предоставляет идеальные типы, поэтому ее можно пропустить.