错误 TS2304:在 angular 4 项目的 app.components.ts 和 main.ts 文件中找不到名称 'X'
Error TS2304: Cannot find name 'X' in the app.components.ts and main.ts file of angular 4 project
打字稿新手。使用 neovim、ubuntu 16.04 和各种 vim typescript 插件 tsuquyomi
、leafgarland/typescript-vim
、mhartington/nvim-typescript
,我很确定我配置了他们正确。
我已经成功安装了@angular/cli,我正在尝试完成本教程,但我遇到了一个我不明白的错误。
`1 .._modules/@angular/core/src/change_detection/differs/default_iterable_differ.d.ts|| TS2304: Cannot find name 'Iterable'.
2 ../node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts|| TS2304: Cannot find name 'Map'.
3 ../node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts|| TS2304: Cannot find name 'Map'.
4 ../node_modules/@angular/core/src/change_detection/differs/iterable_differs.d.ts|| TS2304: Cannot find name 'Iterable'.
5 damn/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts|| TS2304: Cannot find name 'Map'.
6 ..//node_modules/@angular/core/src/di/reflective_provider.d.ts|| TS2304: Cannot find name 'Map'.
7 ../node_modules/@angular/core/src/di/reflective_provider.d.ts|| TS2304: Cannot find name 'Map'.
8 ../node_modules/rxjs/Observable.d.ts|| TS2693: 'Promise' only refers to a type, but is being used as a value here.`
我尝试了我猜的一切,来自
尝试以下 tsconfig filesGlob 属性 :
"filesGlob": [ "main.ts", "typings.d.ts", "app/**/*.ts", "!app/**/*.spec.ts" ],
安装 angular/core-js 和 @types/core-js 以及输入
npm install --save-dev @types/core-js
npm install @types/node --save
已编辑的tsconfig.json文件
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"types": ["node"],
"typeRoots": [
"node_modules/@types"
],
"files": [
"main.ts",
"typings.d.ts"
],
"filesGlob": [
"main.ts",
"typings.d.ts",
"app/**/*.ts"
],
"lib": [
"es2016",
"dom"
]
}
}
我还编辑了 tsconfig.app.json 文件
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": [],
"typeRoots": [
"../node_modules/@types/"
]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
然而,错误仍然存在于我的 app.components.ts 文件和 main.ts 尽管所有这些更改。
在您的 tsconfig.json
中将 "skipLibCheck": true
添加到 "compilerOptions"
我在上述文件的开头添加了以下行,问题似乎已解决。
///<reference path="../../node_modules/typescript/lib/lib.es6.d.ts"/>
我担心的是它将 lib 设置为 es6,而我无法理解到底是什么导致了我的问题。任何提示将不胜感激。
打字稿新手。使用 neovim、ubuntu 16.04 和各种 vim typescript 插件 tsuquyomi
、leafgarland/typescript-vim
、mhartington/nvim-typescript
,我很确定我配置了他们正确。
我已经成功安装了@angular/cli,我正在尝试完成本教程,但我遇到了一个我不明白的错误。
`1 .._modules/@angular/core/src/change_detection/differs/default_iterable_differ.d.ts|| TS2304: Cannot find name 'Iterable'.
2 ../node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts|| TS2304: Cannot find name 'Map'.
3 ../node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts|| TS2304: Cannot find name 'Map'.
4 ../node_modules/@angular/core/src/change_detection/differs/iterable_differs.d.ts|| TS2304: Cannot find name 'Iterable'.
5 damn/node_modules/@angular/core/src/change_detection/differs/keyvalue_differs.d.ts|| TS2304: Cannot find name 'Map'.
6 ..//node_modules/@angular/core/src/di/reflective_provider.d.ts|| TS2304: Cannot find name 'Map'.
7 ../node_modules/@angular/core/src/di/reflective_provider.d.ts|| TS2304: Cannot find name 'Map'.
8 ../node_modules/rxjs/Observable.d.ts|| TS2693: 'Promise' only refers to a type, but is being used as a value here.`
我尝试了我猜的一切,来自
尝试以下 tsconfig filesGlob 属性 :
"filesGlob": [ "main.ts", "typings.d.ts", "app/**/*.ts", "!app/**/*.spec.ts" ],
安装 angular/core-js 和 @types/core-js 以及输入
npm install --save-dev @types/core-js
npm install @types/node --save
已编辑的tsconfig.json文件
{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"types": ["node"],
"typeRoots": [
"node_modules/@types"
],
"files": [
"main.ts",
"typings.d.ts"
],
"filesGlob": [
"main.ts",
"typings.d.ts",
"app/**/*.ts"
],
"lib": [
"es2016",
"dom"
]
}
}
我还编辑了 tsconfig.app.json 文件
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"baseUrl": "./",
"module": "es2015",
"types": [],
"typeRoots": [
"../node_modules/@types/"
]
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
然而,错误仍然存在于我的 app.components.ts 文件和 main.ts 尽管所有这些更改。
在您的 tsconfig.json
中将"skipLibCheck": true
添加到 "compilerOptions"
我在上述文件的开头添加了以下行,问题似乎已解决。
///<reference path="../../node_modules/typescript/lib/lib.es6.d.ts"/>
我担心的是它将 lib 设置为 es6,而我无法理解到底是什么导致了我的问题。任何提示将不胜感激。