Angular 11: почему компилятор не может найти «GeolocationPosition» во время компиляции? Не удается найти имя "GeolocationPosition"

Почему компилятор angular не может найти GeolocationPosition и 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
  }
}


person fieldhof    schedule 27.01.2021    source источник
comment
вам нужно исправить импорт   -  person Rachid Oussanaa    schedule 27.01.2021
comment
@RachidO Я предполагаю, что импорт GeolocationPosition? Какой пакет обеспечивает это?   -  person fieldhof    schedule 27.01.2021
comment
Вы нашли ответ? Просто ударил себя   -  person Richard    schedule 02.02.2021
comment
@fieldhof Если мой ответ помог вам, отметьте его как принятый.   -  person Richard    schedule 03.03.2021


Ответы (2)


В typescript 4.0.x этот тип назывался Position. В typescript 4.1.x он был переименован в GeolocationPosition.

Я думаю, вы обнаружите, что ваш код VS использует встроенную версию машинописного текста, а ваш проект использует более раннюю версию.

Исправить:

npm install --save-dev [email protected]
person Richard    schedule 02.02.2021
comment
обратите внимание, что вам, вероятно, придется обновить angular, а также более ранние второстепенные версии angular 11 требуют typescript до версии 4.1.0 - person Gabriel H; 25.03.2021

У меня была та же проблема, и я решил изменить локальный Angular CLI, используемый проектом.
Объяснение:
Я обновился до Angular 11, но забыл обновить Angular CLI. ng build дал мне этот вывод:

Your global Angular CLI version (9.1.7) is greater than your local
version (9.1.0). The local Angular CLI version is used.

Действия:
Обновите Angular CLI (при необходимости)

npm install -g @angular/cli

Обновить нпм

npm install -g npm

Затем ng build вывод становится:

Your global Angular CLI version (11.1.2) is greater than your local version (9.1.0). The local Angular CLI version is used.

Установите npm-check-updates

npm i -g npm-check-updates

Выполните ncu -u, чтобы просмотреть пакеты для обновления.
Выполните npm install, чтобы обновить все пакеты.
После этого все должно заработать.

person blitiri    schedule 01.02.2021