Fehler TS1086: Ein Accessor kann in Angular 9 nicht in einem Umgebungskontext deklariert werden


25

Ich lerne Angular Material und erhalte diesen Fehler beim Importieren von {MatButtonModule} aus "@ angle / material / button".

Nach dem, was ich in anderen Antworten gelesen habe, sieht es nach Paketkompatibilitätsproblemen aus, aber ich konnte es nicht beheben.

Hier ist der vollständige Fehler

ERROR in node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(29,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(30,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(128,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(129,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(134,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/focus-trap/focus-trap.d.ts(135,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/key-manager/list-key-manager.d.ts(96,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/key-manager/list-key-manager.d.ts(98,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/live-announcer/live-announcer.d.ts(69,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/a11y/live-announcer/live-announcer.d.ts(70,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/observers/observe-content.d.ts(62,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/observers/observe-content.d.ts(63,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/observers/observe-content.d.ts(66,9): error TS1086: An accessor cannot be declared in an ambient context.
    node_modules/@angular/cdk/observers/observe-content.d.ts(67,9): error TS1086: An accessor cannot be declared in an ambient context.

Hier ist meine package.json

"name": "football",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~8.2.14",
    "@angular/cdk": "^9.0.0",
    "@angular/common": "~8.2.14",
    "@angular/compiler": "~8.2.14",
    "@angular/core": "~8.2.14",
    "@angular/forms": "~8.2.14",
    "@angular/material": "8.2.3",
    "@angular/platform-browser": "~8.2.14",
    "@angular/platform-browser-dynamic": "~8.2.14",
    "@angular/router": "~8.2.14",
    "hammerjs": "^2.0.8",
    "rxjs": "~6.4.0",
    "tslib": "^1.10.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.803.21",
    "@angular/cli": "~8.3.21",
    "@angular/compiler-cli": "~8.2.14",
    "@angular/language-service": "~8.2.14",
    "@types/node": "~8.9.4",
    "@types/jasmine": "~3.3.8",
    "@types/jasminewd2": "~2.0.3",
    "codelyzer": "^5.0.0",
    "jasmine-core": "~3.4.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~4.1.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~2.0.1",
    "karma-jasmine-html-reporter": "^1.4.0",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.15.0",
    "typescript": "~3.5.3"
  }
}

Antworten:


40

Laut package.json verwenden Sie Angular 8.3, haben jedoch Angular / CDK v9 importiert. Sie können Ihre Angular / CDK-Version herunterstufen oder Ihre Angular-Version auf v9 aktualisieren, indem Sie Folgendes ausführen:

ng update @angular/core @angular/cli

Dadurch wird Ihre lokale Winkelversion auf 9 aktualisiert. Führen Sie dann zum Synchronisieren des Materials Folgendes aus: ng update @angular/material


Vielen Dank, ich bin auf dieses Problem gestoßen, als ich Angular Flex installiert habe, das automatisch die neueste Version (in meinem Fall Version 9) installiert hat, aber mit
Angular

@Kyler Johnson Johnson, wie kann ich Angular / CDK
Mdkamrul

1
@mdkamrul Sie können ein Downgrade durchführen npm i @angular/core@8 @angular/cli@8 @angular/material@8, indem Sie ausführen , vorausgesetzt, Sie haben Version 8. Manchmal sind Ihre package.json und package-lock.json nicht mehr synchron und Ihr Projekt verwendet die Inhalte der Datei package-lock.json. Führen Sie npm isie jetzt aus, um sie zu synchronisieren. Wenn Sie danach immer noch auf Probleme stoßen, führen npm ciSie eine vollständig saubere Installation Ihrer Abhängigkeiten durch
Kyler Johnson,

Ich musste verwenden ng update @angular/cli @angular/core --force, weil die Pakete selbst nicht kompatibel sind und man sonst nicht wechseln kann.
Testen

0

Bitte checken Sie zuerst in der module.tsDatei ein, dass in @NgModuleallen Eigenschaften nur einmal. Wenn einer von mehr als einmal ist, dann kommt auch dieser Fehler. Da ich auch diesen Fehler aufgetreten war, aber in der module.tsDateieigenschaft entryComponentszwei Mal waren, bekam ich diesen Fehler. Ich habe diesen Fehler durch einmaliges Entfernen entryComponentsvon behoben @NgModule. Daher empfehle ich, dass Sie es zuerst richtig überprüfen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.