编译器无法从global.d.ts导入类型

时间:2017-06-14 00:00:42

标签: typescript

Here is the full NPM package on GitHub.

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs"
  }
}

global.d.ts

interface Foo { }

index.ts

const x: Foo = {};

这是我们建立时发生的事情:

$ \node_modules\.bin\tsc .\index.ts
index.ts(1,10): error TS2304: Cannot find name 'Foo'.

这是我们的版本:

$ .\node_modules\.bin\tsc --version
Version 2.3.4

这些是tsc列出的文件:

$ .\node_modules\.bin\tsc --listFiles
C:/temp/node_modules/typescript/lib/lib.d.ts
C:/temp/global.d.ts                         
C:/temp/index.ts                           

我们如何自动将Foo加载到index.ts文件中?

研究

The documentation on global.d.ts表示上述情况应该有效。

1 个答案:

答案 0 :(得分:2)

您必须将global.d.ts文件作为tsc参数的一部分传递:

$ \node_modules\.bin\tsc .\index.ts .\global.d.ts

但请注意,通过指定文件,您忽略了tsconfig.json文件。因此,如果您想使用tsconfig.json文件,只需在没有任何参数的情况下调用tsc,它就会使用tsc --listFiles时列出的文件。

来自documentation

  

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