There are several questions about disabling errors in mistyped node_modules
(e.g., this one, or this one), but they all involve using the skipLibCheck
compiler flag.
Are there other solutions to this problem (e.g., using include
or exclude
)? I have a couple of hand-written .d.ts
files (stricter types than available on DefinitelyTyped) that I'd like to type check, so the wholesale disabling of typechecking on these files is not appealing.
Skip type checking of declaration files. This can save time during compilation at the expense of type-system accuracy. For example, two libraries could define two copies of the same type in an inconsistent way. Rather than doing a full check of all d.
Instead, Typescript will only type-check the code you use against these types. This means that as long as you aren't using the incompatible parts of imported libraries, they'll compile just fine. tl;dr, Yes, --skipLibCheck degrades type checking, and ideally we wouldn't use it.
There is no granular control over type checking, you either check all declaration files or none unfortunately. From compiler code:
export function skipTypeChecking(sourceFile: SourceFile, options: CompilerOptions) {
// If skipLibCheck is enabled, skip reporting errors if file is a declaration file.
// If skipDefaultLibCheck is enabled, skip reporting errors if file contains a
// '/// <reference no-default-lib="true"/>' directive.
return options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib;
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With