为什么Typescript在Visual Studio Code中忽略了我的tsconfig.json?

时间:2016-07-08 14:10:23

标签: typescript visual-studio-code

我的项目设置如下

project/
|
+---src/
|   |
|   +---app/
|       |
|       sample.ts
|
+---typings/
+---tsconfig.json

这是我的tsconfig.json

{
    "compilerOptions": {
        "rootDir": "src",
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": true,
        "sourceMap": true,
        "noImplicitAny": false,
        "outDir": "dist"
    },
    "exclude": [
        "node_modules",
        "src/assets",
        "src/lib"
    ]
}

我想知道的是,为什么VSC会指出错误,例如

Error Highlighting in VSC

当显然没有任何错误时("experimentalDecorators": true中设置tsconfig.json),应用程序转换得很好?并且不仅仅是装饰者,Promise等也会突出显示(我确保tsconfig.jsontypings位于同一文件夹中,我得到es6-shim的输入安装)。

不确定是否重要,但此刻我正在typescript@2.0.0-dev.20160707

3 个答案:

答案 0 :(得分:15)

简答

当您使用较新版本的TypeScript时,VS代码会忽略您的tsconfig.json,而不是VS代码提供的开箱即用版本。

您正在使用TypeScript 2.0.0-dev.20160707,因此可能正在发生这种情况。

如何在VS Code

中使用较新的TypeScript版本

首先,将TypeScript安装到node_modules。选择稳定或每晚。

npm install typescript --save-dev // stable
npm install typescript@next --save-dev // nightly

第二次,将生成的lib相对路径添加到settings.json。也就是说,在VS Code中通过文件打开settings.json>设置>用户设置,并添加以下属性。

{
  "typescript.tsdk": "node_modules/typescript/lib"
}

注意,如果您全局安装了TypeScript(-g)而不是项目的node_modules,请适当调整typescript.tsdk位置。

第三次,请确保您拥有有效的tsconfig.json。这是一个例子。

{
    "compileOnSave": false,
    "compilerOptions": {
        "sourceMap": true,
        "target": "es5",
        "experimentalDecorators": true,
        "noImplicitAny": false
    },
    "exclude": [
        "node_modules"
    ],
    "filesGlob": [
        "src/**/*.ts",
        "test/**/*.ts",
        "typings/index.d.ts"
    ]
}

Documentation

  

VS Code附带了最近稳定版的TypeScript。 如果您想使用较新版本的TypeScript,,您可以定义typescript.tsdk设置(文件>偏好设置>用户/工作区设置),指向包含TypeScript tsserver.js和相应的lib。*。d.ts文件。目录路径可以是工作空间目录的绝对路径或相对路径。通过使用相对路径,您可以轻松地与团队共享此工作区设置并使用最新的TypeScript版本(npm install typescript @ next)。有关如何安装TypeScript的每晚版本的更多详细信息,请参阅此博客文章。 (重点补充)。

另请参阅:https://blogs.msdn.microsoft.com/typescript/2016/01/28/announcing-typescript-1-8-beta/

答案 1 :(得分:3)

找到typescript安装到npm的文件夹,在我的情况下,这是:

C:\Users\<username>\AppData\Roaming\npm\node_modules\typescript\\lib

在其他文件中,应该有:

lib.d.ts
tsserver.js

内部。现在打开设置:

File -> Preferences -> User Settings/Workspace Settings

这应该打开文件settings.json,添加:

{
    "typescript.tsdk": "C:\\Users\\<username>\\AppData\\Roaming\\npm\\node_modules\\typescript\\lib"
}

(请注意双反斜杠\\),保存并重要 - 重新启动Visual Studio代码。享受。

答案 2 :(得分:0)

就我而言,问题是我的tsconfig.json放在错误的位置。它在.vscode文件夹中,但是应该已经升级了。

当我单击右下角的Typescript版本时,我注意到了这一点,并且VSCode菜单告诉我找不到tsconfig文件,并提示我创建一个。