@ 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.

Josel567
la source

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.

Aviad Hadad
la source
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

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

Le cadre a "skipLibCheck": truefonctionné pour moi.

kimamula
la source
A travaillé pour moi aussi, merci.
électrotype
Dans quel fichier dois-je changer cela?
krishn Patel, le
Fichier tsconfig.json
29er