@ Các loại / Lỗi tuần tự hóa TS1086: Một trình truy cập không thể được khai báo trong ngữ cảnh xung quanh


10

Tôi có một dự án hiển thị lỗi này khi tôi chạy 'tsc':

../modules/node_modules/sequelize/types/lib/transaction.d.ts:33:14 - error TS1086: An accessor cannot be declared in an ambient context.

33   static get LOCK(): LOCK;
                ~~~~

../modules/node_modules/sequelize/types/lib/transaction.d.ts:40:7 - error TS1086: An accessor cannot be declared in an ambient context.

40   get LOCK(): LOCK;
         ~~~~

Phiên bản của tôi là:

  • "@ loại / sắp xếp lại": "^ 4.28.6"
  • "sắp xếp lại": "^ 5,8.10"
  • "sequelize-typecript": "1.0.0-beta.4"

Dự án hoạt động tốt với gật đầu nhưng thất bại khi tôi cố gắng biên dịch bản thảo. Có ai biết lỗi này không?

Cảm ơn.

Câu trả lời:


13

bạn cần sử dụng bản thảo 3.7.

từ bản ghi chú phát hành bản thảo 3.7:

To detect the issue around accessors, TypeScript 3.7 will now emit get/set accessors in .d.ts files so that in TypeScript can check for overridden accessors.

vì vậy có lẽ sequelizeđã được biên dịch với bản thảo 3.7 và phát ra các tệp định nghĩa mà các phiên bản trước không hiểu được. Vì vậy, bạn sẽ cần nâng cấp lên bản thảo 3.7 hoặc sử dụng phiên bản sắp xếp lại trước đó.


Nếu tôi không thể nâng cấp lên 3.7 thì sao? có ý kiến ​​khác không?
Shlomi Levi

nó hoạt động như một bùa mê
Aditya Kresna Permana

@ShlomiLevi Sử dụng phiên bản cũ hơn của@types/sequelize
Aviad Hadad

3
angular 8 chỉ có thể hoạt động với bản thảo <V3.5
Ratshiḓaho Wayne

bạn nói đúng, tôi đã gặp vấn đề này gần đây và sau một số tìm kiếm tôi đã phát hiện ra một sự cố đã đóng trong Github, vì vậy để khắc phục sự cố tôi phải nâng cấp phiên bản bản thảo lên phiên bản 3.7.2.
Thiago Valentim

23

Tôi có góc 8 . nó đang làm việc với phiên bản bản thảo của 3.4.5. Vì vậy, giải quyết vấn đề này làm các bước dưới đây.

bước 1) đi đến tệp tsconfig.json

bước 2) thêm SkipLibCheck: true trong đối tượng "Trình biên dịch". Nó làm việc cho tôi.

"compilerOptions": {
    "module": "commonjs",
    "moduleResolution": "node",
    "strict": true,
    "target": "es5",
    "declaration": true,
    "declarationDir": "dist-debug/",
    "skipLibCheck": true, /// Needs to be true to fix wrong alias types being used

  },

Cảm ơn. "SkipLibCheck": true (được thêm vào tsconfig có liên quan đến NestJs), đã hoạt động và NestJs với ứng dụng được kích hoạt thông qua Nest g ng-app.
Алексей Медведев

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.