Angular11:为什么编译器在编译过程中找不到“GeolocationPosition”?“找不到名称‘GeolocationPosition’”
为什么 angular 编译器找不到GeolocationPositionand GeolocationPositionError?VSC 不会出错,只有在编译过程中才会出错。
Error: src/app/modules/shared/services/position.service.ts:10:46 - error TS2304: Cannot find name 'GeolocationPosition'.
10 private positionSource = new ReplaySubject<GeolocationPosition>(1);
我通过any输入类型来解决这个问题,但我只是好奇为什么 Angular 会给我这个错误以及我如何解决这个问题。
我已经尝试了不同的编译器目标 ( es5, es6, es2018) 但没有运气。已经安装@types/core-js但也没有任何运气。是否有我遗漏的 @types 模块?
这是我当前的 tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"forceConsistentCasingInFileNames": true,
"strict": true,
"noImplicitReturns": true,
"noFallthroughCasesInSwitch": true,
"sourceMap": true,
"declaration": false,
"downlevelIteration": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"importHelpers": true,
"target": "es5",
"module": "es2020",
"lib": [
"es2018",
"dom"
]
},
"angularCompilerOptions": {
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
"strictTemplates": true
}
}
回答
在打字稿 4.0.x 中,这种类型被称为Position. 在打字稿 4.1.x 中,它被重命名为GeolocationPosition.
我想您会发现您的 VS Code 正在使用其内置版本的打字稿,而您的项目正在使用早期版本。
修理:
npm install --save-dev typescript@4.1.2
THE END
二维码