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

时间:2018-10-04 10:59:40

标签: typescript

我有一个名为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时,我完全没有错误,并且app.js文件已生成!不是我所期望的。为什么会这样?

1 个答案:

答案 0 :(得分:2)

这是因为tsc可以完成一个整个项目(并占用tsconfig.json)或一个文件,但不能同时做这两个文件。

在单个文件中调用tsc时,它不会查看tsconfig.json(请参阅this documentation)。

  

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

(重点是我的)


这背后的原因对我来说还是个谜。