我讨厌问这个问题,我想这个新项目缺失的设置或打字很简单。它将运行的事实(通过ts-node
)告诉我这只是VS Code抱怨(但是,为什么?)Google和SO搜索没有具体的内容。
Visual Studio代码
版本1.22.2
提交3aeede733d9a3098f7b4bdc1f66b63b0f48c1ef9
日期2018-04-12T16:38:45.278Z
壳牌1.7.12
渲染器58.0.3029.110
节点7.9.0
建筑x64
> node -v
v9.10.0
> npm -v
5.6.0
> tsc -v
Version 2.8.3
> npm ls --depth=0
api-auth-test@1.0.0 C:\...
+-- @types/node@9.6.6
+-- axios@0.18.0
`-- typescript@2.8.3
> npm ls --depth=0 -g
C:\Users\...\AppData\Roaming\npm
+-- generator@1.0.1
+-- generator-gitignore@0.1.2
+-- npx@10.2.0
+-- ts-node@6.0.1
+-- tslint@5.9.1
+-- typescript@2.8.3
`-- yo@2.0.2
我在此处提到了首选项,设置中的tsdk setting,并确保将 typescript 安装到本地 node_modules
中 "typescript.tsdk": "node_modules\\typescript\\lib\\",
编辑它,错误消失,然后返回(因为VS刷新我想象的缓存。)
tsconfig.json
{
"compilerOptions": {
"target": "esnext", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
"lib": [ ], /* Specify library files to be included in the compilation. */
"sourceMap": true, /* Generates corresponding '.map' file. */
"strict": true, /* Enable all strict type-checking options. */
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
}
}
的package.json
{
"name": "api-auth-test",
"version": "1.0.0",
"description": "",
"main": "app.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"@types/node": "^9.6.6",
"axios": "~0.18.0",
"typescript": "^2.8.3"
},
"devDependencies": {}
}
答案 0 :(得分:1)
您的tsconfig lib
缺少es2015
条目,或者说是空的。
"lib": [
"dom",
"es2015"
],
删除es2015
给了我你面临的错误。
有关--lib选项的信息,请参阅What does the tsconfig option "lib" do?
答案 1 :(得分:0)
我在基于Angular 8的解决方案中也观察到了类似的问题。这些问题是使用“ es2018”设置的,在添加了“ es2015”之后,红色波浪形也消失了。
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2018",
"es2015",
"dom"
]
}
}
现在,您可能不应该混合使用这些库,而只能坚持使用其中之一。但是重点是要强调Angular 8使用“ es2018”,我观察到添加“ es2015”还修复了一些看似错误的错误,这些错误在浏览器内部运行时很好(误报)。