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

lor*_*ess 3 typescript

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

    interface  Foo {
    bar:String;
}

const fn = (foo? :Foo) => foo.bar;
Run Code Online (Sandbox Code Playgroud)

由于strict:true在我的 tsconfig.json 文件中,当我tsc从根文件夹运行时出现一个很好的错误。错误看起来像这样。

app.ts:5:27 - error TS2532: Object is possibly 'undefined'.

5 const fn = (foo? :Foo) => foo.bar;
Run Code Online (Sandbox Code Playgroud)

这正是我所期望的。但是,当我运行时,我tsc app.ts完全没有错误,并且生成了 app.js 文件!不是我所期望的。为什么是这样?

Mad*_*iha 6

那是因为tsc可以执行整个项目(并说明tsconfig.json)或单个文件,但不能同时执行。

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

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

(强调我的)


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