Typescript 在具有严格编译器选项的 node_modules 中引发错误

Posted

技术标签:

【中文标题】Typescript 在具有严格编译器选项的 node_modules 中引发错误【英文标题】:Typescript throws errors in node_modules with strict compiler options 【发布时间】:2017-11-02 11:03:57 【问题描述】:

尽管tsconfig.json 中排除了该文件夹,但为什么会引发node_modules 中的错误,有几个github 问题。如果在包含它的库中有任何import,则忽略exclude 属性。

但是,当使用更严格的编译器选项(即strictNullChecksnoUnusedLocals、...)并引用任何不适用于这些选项的库时 , 会抛出错误。

因此,无论何时使用这样的库,总是决定不使用该库或不使用编译器选项。但是,有一些大型库/框架不支持这些选项(即 Angular),因此似乎无法使用这些选项来确保在自己的项目中进行严格检查。

我是否错过了避免抛出 node_modules 错误的一些可能性? 如果没有,是否有任何技术要求将这些规则应用于所有导入的库或这种行为背后的原因是什么

【问题讨论】:

【参考方案1】:

在我所有的项目设置中,我都有根目录的结构:

文件夹:

code_folder node_modules

文件:

package.json README.md tsconfig.json tslint.json yarn.lock

然后在tsconfig.json中:


    "compilerOptions": 
        "lib": ["es6"]
    ,
    "include": [
        "code_folder/*"
    ]

【讨论】:

以上是关于Typescript 在具有严格编译器选项的 node_modules 中引发错误的主要内容,如果未能解决你的问题,请参考以下文章

Typescript 使用具有严格值的接口

TypeScript系列教程01入门介绍

将 Typescript 的 baseUrl 编译器选项与节点一起使用

如何使用严格类型的有效负载发出事件? | Vue 3 组合 API + TypeScript

将 typescript 错误连接到其关联的编译器选项 (tsconfig.json)

gcc编译选项pedantic(GCC编译器的C++标准严格模式)