@ ประเภท / ข้อผิดพลาดตามลำดับ TS1086: ไม่สามารถประกาศการเข้าถึงได้ในบริบทแวดล้อม


10

ฉันมีโครงการที่แสดงข้อผิดพลาดนี้เมื่อฉันเรียกใช้ '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;
         ~~~~

เวอร์ชันของฉันคือ:

  • "@ types / sequelize": "^ 4.28.6"
  • "sequelize": "^ 5.8.10"
  • "sequelize-typescript": "1.0.0-beta.4"

โครงการทำงานได้ดีกับ nodemon แต่ล้มเหลวเมื่อฉันพยายามรวบรวม typescript ใครรู้ข้อผิดพลาดนี้

ขอบคุณ

คำตอบ:


13

คุณต้องใช้ typescript 3.7

จากบันทึกประจำรุ่น typescript 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.

ดังนั้นจึงน่าจะsequelizeถูกรวบรวมด้วย typescript 3.7 และปล่อยไฟล์คำจำกัดความที่เวอร์ชันก่อนหน้าไม่เข้าใจ ดังนั้นคุณจะต้องอัพเกรดเป็น typescript 3.7 หรือใช้ภาคต่อของเวอร์ชั่นก่อนหน้า


จะทำอย่างไรถ้าฉันไม่สามารถอัพเกรดเป็น 3.7 มีความคิดอื่นไหม
Shlomi Levi

มันใช้งานได้อย่างมีเสน่ห์
Aditya Kresna Permana

@ShlomiLevi ใช้รุ่นก่อนหน้าของ@types/sequelize
Aviad Hadad

3
เชิงมุม 8 สามารถทำงานกับ typescript <V3.5
Ratshiḓaho Wayne

คุณมีสิทธิ์ฉันมีปัญหานี้เมื่อเร็ว ๆ นี้และหลังจากการค้นหาบางอย่างที่ฉันพบปัญหาปิดใน Github ดังนั้นเพื่อแก้ไขปัญหาที่ฉันต้องอัพเกรดรุ่น typescript เป็นรุ่น 3.7.2
Thiago Valentim

23

ฉันมีเชิงมุม 8 มันทำงานกับรุ่น typescript ของ 3.4.5 เพื่อแก้ปัญหานี้ให้ทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1) ไปที่ไฟล์tsconfig.json

ขั้นตอนที่ 2) เพิ่มskipLibCheck: จริงในวัตถุ "compilerOptions" มันใช้งานได้สำหรับฉัน

"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

  },

ขอบคุณ "skipLibCheck": จริง (เพิ่มไปยัง tsconfig ที่เกี่ยวข้องกับ NestJs), ทำงานและ NestJs ด้วยแอพที่สร้างขึ้นผ่าน Nest g ng-app
АлексейМедведев

5

การตั้งค่า"skipLibCheck": trueทำงานสำหรับฉัน


ทำงานให้ฉันด้วยเช่นกันขอบคุณ
electrotype

ไฟล์ไหนที่ฉันต้องเปลี่ยน?
krishn Patel

ไฟล์ tsconfig.json
29er
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.