为什么 tsc 命令在用于编译特定文件时不显示编译错误?



我有一个名为app.ts的文件,它看起来像这样。

interface  Foo {
bar:String;
}
const fn = (foo? :Foo) => foo.bar;

由于我的 tsconfig.json 文件中有strict:true,当我从根文件夹运行tsc时,我遇到了一个很好的错误。错误如下所示。

app.ts:5:27 - error TS2532: Object is possibly 'undefined'.
5 const fn = (foo? :Foo) => foo.bar;

这正是我所期望的。但是当我运行tsc app.ts时,我根本没有收到任何错误,并且生成了应用程序.js文件!不是我所期望的。这是为什么呢?

那是因为tsc可以做整个项目(并考虑tsconfig.json(或单个文件,但不能两者兼而有之。

当使用单个文件调用tsc时,它不会查看tsconfig.json(请参阅此文档(。

在命令行上指定输入文件时,将忽略 tsconfig.json 文件。

(强调我的(


不过,这背后的原因对我来说是一个谜。

最新更新