lỗi TS1086: Không thể khai báo một bộ truy cập trong ngữ cảnh xung quanh trong Angular 9


25

Tôi đang học Tài liệu góc và tôi gặp lỗi này khi nhập {MatButtonModule} từ "@ angular / liệu / nút".

Từ những gì tôi đọc được trong các câu trả lời khác, có vẻ như các vấn đề tương thích gói nhưng tôi không thể sửa nó.

Đây là lỗi đầy đủ

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.

Đây là gói.json của tôi

"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"
  }
}

Câu trả lời:


40

Theo gói.json của bạn, bạn đang sử dụng Angular 8.3, nhưng bạn đã nhập angular / cdk v9. Bạn có thể hạ cấp phiên bản angular / cdk của bạn hoặc bạn có thể nâng cấp phiên bản Angular của bạn lên v9 bằng cách chạy:

ng update @angular/core @angular/cli

Điều đó sẽ cập nhật phiên bản góc cục bộ của bạn lên 9. Sau đó, chỉ cần đồng bộ hóa vật liệu, hãy chạy: ng update @angular/material


Cảm ơn, tôi đã gặp phải sự cố này khi tôi cài đặt angular flex tự động cài đặt phiên bản mới nhất (phiên bản 9 trong trường hợp của tôi) nhưng tôi đã làm việc với angular 8. Sửa phiên bản đã giải quyết vấn đề
A_J

@Kyler johnson làm thế nào tôi có thể hạ cấp góc / cdk
mdkamrul

1
@mdkamrul bạn có thể hạ cấp bằng cách chạy npm i @angular/core@8 @angular/cli@8 @angular/material@8, giả sử bạn đã ở phiên bản 8. Đôi khi, gói.json và gói-lock.json của bạn sẽ không đồng bộ hóa và dự án của bạn sẽ sử dụng những gì bên trong tệp pack-lock.json. Vì vậy, bây giờ, chạy npm iđể đồng bộ chúng lên. Nếu sau đó bạn vẫn gặp vấn đề, hãy chạy npm ciđể cài đặt hoàn toàn các phần phụ thuộc của bạn
Kyler Johnson

Tôi đã phải sử dụng ng update @angular/cli @angular/core --force, vì các gói không tương thích với nhau, bạn không thể chuyển đổi bằng cách khác.
thử nghiệm

0

Trước tiên, vui lòng kiểm tra trong module.tstệp rằng trong @NgModuletất cả các thuộc tính chỉ là một lần. Nếu bất kỳ ai trong số nhiều hơn một lần thì cũng có lỗi này. Bởi vì tôi cũng đã xảy ra lỗi này nhưng trong thuộc tính module.tstệp entryComponentscó hai lần đó là lý do tại sao tôi gặp lỗi này. Tôi đã giải quyết lỗi này bằng cách xóa một lần entryComponentstừ @NgModule. Vì vậy, tôi khuyên bạn nên kiểm tra nó trước.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.