kesalahan TS1086: Accessor tidak dapat dideklarasikan dalam konteks ambient di Angular 9

25

Saya belajar Bahan Angular dan saya mendapatkan kesalahan ini ketika mengimpor {MatButtonModule} dari "@ angular / material / button".

Dari apa yang saya baca di jawaban lain, sepertinya masalah kompatibilitas paket tapi saya tidak bisa memperbaikinya.

Inilah kesalahan lengkapnya

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.

Ini paket saya. 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"
  }
}
Pablo Aguirre de Souza
sumber

Jawaban:

41

Menurut package.json Anda, Anda menggunakan Angular 8.3, tetapi Anda telah mengimpor angular / cdk v9. Anda bisa menurunkan versi angular / cdk Anda atau meningkatkan versi Angular ke v9 dengan menjalankan:

ng update @angular/core @angular/cli

Itu akan memperbarui versi sudut lokal Anda ke 9. Kemudian, hanya untuk menyinkronkan materi, jalankan: ng update @angular/material

Kyler Johnson
sumber
Terima kasih, saya mengalami masalah ini ketika saya menginstal flex sudut yang secara otomatis menginstal versi terbaru (versi 9 dalam kasus saya) tapi saya bekerja dengan sudut 8. Mengoreksi versi menyelesaikan masalah
A_J
@Kyler johnson bagaimana saya bisa menurunkan sudut / cdk
mdkamrul
1
@ mdkamrul Anda dapat menurunkan versi dengan menjalankan npm i @angular/core@8 @angular/cli@8 @angular/material@8, dengan asumsi Anda berada di versi 8. Terkadang package.json dan package-lock.json Anda akan keluar dari sinkronisasi dan proyek Anda akan menggunakan apa yang ada di dalam file package-lock.json. Jadi sekarang, jalankan npm iuntuk menyinkronkannya. Jika Anda masih mengalami masalah setelah itu, jalankan npm ciuntuk melakukan instalasi dependensi Anda sepenuhnya bersih
Kyler Johnson
Saya harus menggunakan ng update @angular/cli @angular/core --force, karena paket-paket itu sendiri tidak kompatibel dan Anda tidak dapat beralih sebaliknya.
Menguji
0

Pertama, harap periksa module.tsfile yang di @NgModulesemua properti hanya satu kali. Jika ada lebih dari satu kali maka kesalahan ini juga datang. Karena saya juga mengalami kesalahan ini tetapi di properti module.tsfile entryComponentsdua kali itu sebabnya saya mendapatkan kesalahan ini. Saya menyelesaikan kesalahan ini dengan menghapus satu kali entryComponentsdari @NgModule. Jadi, saya sarankan Anda terlebih dahulu memeriksanya dengan benar.

Rohit Tagadiya
sumber