Typescript tsconfig只在VS代码中的单个文件上工作

Typescript tsconfig只在VS代码中的单个文件上工作,typescript,visual-studio-code,tsconfig,Typescript,Visual Studio Code,Tsconfig,我的tscongig.json无法按预期工作。我在VS代码中的项目中将情况简化为这种结构: -a.ts -b.ts -tsconfig.json -def.d.ts 而tsconfig包含: "files": ["def.d.ts"] 现在,当我在a.ts上工作时,intellisense正在正确地完成来自def.d.ts的代码。但当我切换到b.ts时,定义就不见了。当我在b.ts窗口处于活动状态时重新启动VS代码时,定义在b.ts上可用,但在a.ts上缺少。换句话说,它只对一个文件有效,直

我的tscongig.json无法按预期工作。我在VS代码中的项目中将情况简化为这种结构:

-a.ts
-b.ts
-tsconfig.json
-def.d.ts
而tsconfig包含:

"files": ["def.d.ts"]
现在,当我在a.ts上工作时,intellisense正在正确地完成来自def.d.ts的代码。但当我切换到b.ts时,定义就不见了。当我在b.ts窗口处于活动状态时重新启动VS代码时,定义在b.ts上可用,但在a.ts上缺少。换句话说,它只对一个文件有效,直到我打开另一个文件重新启动整个studio。这正常吗?我做错什么了吗

谢谢你的建议


编辑:我的项目不是常规TS项目。它用于帮助编写许多长脚本。需要解决的问题是:*.ts文件彼此不“看到”,但intellisense在编辑.ts文件时提供了来自d.ts的定义。当前的解决方案是在每个ts文件中引用d.ts,这是可行的,但它不是那么干净。

我不使用文件,而是使用exclude。intellisense处理所有不在exclude中的.ts文件:

"exclude": [
    "node_modules",
    "build",
    "typings/main", //or typings/browser if you want
    "typings/main.d.ts",
    //etc, etc
]
这样,你就可以排除intellisense与之无关的内容,并与其他内容一起使用


在您的情况下,您可以只保留一个空的exclude数组,如果您认为将来将使用NPM的话,可以使用“node_modules”。

我不使用文件,而是使用exclude。intellisense处理所有不在exclude中的.ts文件:

"exclude": [
    "node_modules",
    "build",
    "typings/main", //or typings/browser if you want
    "typings/main.d.ts",
    //etc, etc
]
这样,你就可以排除intellisense与之无关的内容,并与其他内容一起使用


在您的情况下,您可以只保留一个空的排除数组,如果您认为将来将使用NPM的话,可以使用“node_modules”。

为什么要指定要包含的特定文件?我想说的是,最好从包含所有文件开始(这样做时不定义“文件”),并创建一个排除数组。如果这不适合您,您可能还希望在文件数组中包含a.ts和b.ts。为什么要指定要包含的特定文件?我想说的是,最好从包含所有文件开始(这样做时不定义“文件”),并创建一个排除数组。如果这不适合您,您可能还希望在文件数组中包含a.ts和b.ts。