@ Types / Sequelize Error TS1086: Un accesseur ne peut pas être déclaré dans un contexte ambiant


10

J'ai un projet qui montre cette erreur lorsque j'exécute '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;
         ~~~~

Mes versions sont:

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

Le projet fonctionne très bien avec nodemon mais échoue lorsque j'essaie de compiler le script. Quelqu'un connaît cette erreur?

Merci.

Réponses:


13

vous devez utiliser tapuscript 3.7.

à partir des notes de mise à jour de 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.

donc vraisemblablement a sequelizeété compilé avec tapuscript 3.7 et émet des fichiers de définition que les versions précédentes ne comprennent pas. Vous devrez donc effectuer une mise à niveau vers TypeScript 3.7 ou utiliser une version antérieure de Sequelize.


Et si je ne peux pas passer à la version 3.7? vous avez une autre idée?
Shlomi Levi

cela fonctionne comme un charme
Aditya Kresna Permana

@ShlomiLevi Utilisez une version antérieure de@types/sequelize
Aviad Hadad

3
angular 8 ne peut fonctionner qu'avec dactylographié <V3.5
Ratshiḓaho Wayne

vous avez raison, j'ai eu ce problème récemment et après quelques recherches, j'ai découvert un problème fermé dans le Github, donc pour résoudre le problème, j'ai dû mettre à niveau la version dactylographiée vers la version 3.7.2.
Thiago Valentim

23

J'ai Angular 8 . il fonctionne avec la version dactylographiée de 3.4.5. alors résolvez ce problème, suivez les étapes ci-dessous.

étape 1) accédez au fichier tsconfig.json

étape 2) ajoutez skipLibCheck: true dans l'objet "compilerOptions". Ça marche pour moi.

"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

  },

Merci. "skipLibCheck": true (ajouté à tsconfig qui se rapportait aux NestJs), fonctionnait et NestJs avec une appli qui s'activait via nest g ng-app.
Алексей Медведев

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.