如何让VSCode显示严格模式的TypeScript空值错误

9

当我使用以下的tsconfig.json构建我的项目时,由于最近添加了strictNullChecks: true,我遇到了错误。

{
    "version": "2.3.4",
    "compilerOptions": {
        "allowSyntheticDefaultImports": false,
        "removeComments": true,
        "strictNullChecks": true,
        "sourceMap": true,
        "jsx": "react",
        "target": "es5",
        "lib": [
            "es6",
            "dom",
            "scripthost"
        ],
        "outDir": "../build/"
    },
    "include": [
        "./*.ts",
        "./*.tsx",
        "./{client,mobile,server,shared,test,tools}/*.ts",
        "./{client,mobile,server,shared,test,tools}/*.tsx",
        "./{client,mobile,server,shared,test,tools}/**/*.ts",
        "./{client,mobile,server,shared,test,tools}/**/*.tsx",
        "./desktop/*.ts"
    ]
}

然而,在VSCode中我没有看到任何错误。

我还有以下的VSCode设置:

"typescript.tsdk": "./node_modules/typescript/lib",

除了 strictNullChecks 错误,似乎在 VSCode 中一切正常。


4
在一个ts文件中,如果你期望出现严格的空值错误,在vscode中运行typescript: Go to project configuration命令会发生什么?此外,在右下角状态栏中显示哪个typescript版本? - Matt Bierner
啊哈。有趣... "文件不是 TypeScript 项目的一部分" - Chet
我不确定为什么它找不到它.... - Chet
1
嗯,当我去掉include字段时似乎可以工作... - Chet
1
你所在的文件路径是什么?你可能需要使用类似于 ./**/*.ts 的通配符。 - Matt Bierner
显示剩余3条评论
1个回答

0

请检查您的tsconfig.json文件中的includeexclude规则,确保没有排除该文件。

可能的情况包括:

  • 未包含嵌套文件夹(例如使用*.ts./*.ts或其他变体,而不是**/*.ts)。这似乎是原始问题中的问题所在。
  • 在以前没有任何规则的情况下,新增了include规则 - 在此处指定任何值都将覆盖默认值**/*.*

感谢Matt Bierner在评论中提供的提示。然而,它并没有发布为答案,因此没有得到适当的可见度或重要性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接