我的项目设置如下
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会指出错误,例如
当显然没有任何错误时("experimentalDecorators": true
中设置tsconfig.json
),应用程序转换得很好?并且不仅仅是装饰者,Promise
等也会突出显示(我确保tsconfig.json
与typings
位于同一文件夹中,我得到es6-shim
的输入安装)。
不确定是否重要,但此刻我正在typescript@2.0.0-dev.20160707
。
答案 0 :(得分:15)
当您使用较新版本的TypeScript时,VS代码会忽略您的tsconfig.json
,而不是VS代码提供的开箱即用版本。
您正在使用TypeScript 2.0.0-dev.20160707
,因此可能正在发生这种情况。
首先,将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"
]
}
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文件,并提示我创建一个。