@ Tipi / Sequelize Error TS1086: un accessor non può essere dichiarato nel contesto ambientale


10

Ho un progetto che mostra questo errore quando eseguo '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;
         ~~~~

Le mie versioni sono:

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

Il progetto funziona bene con nodemon ma fallisce quando provo a compilare il dattiloscritto. Qualcuno sa questo errore?

Grazie.

Risposte:


13

devi usare il dattiloscritto 3.7.

dalle note di rilascio di 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.

quindi presumibilmente è sequelizestato compilato con dattiloscritto 3.7 ed emette file di definizione che le versioni precedenti non comprendono. Quindi dovrai aggiornare a dattiloscritto 3.7 o utilizzare una versione precedente di sequelize.


Cosa succede se non riesco ad eseguire l'aggiornamento a 3.7? hai un'altra idea?
Shlomi Levi,

funziona come un incantesimo
Aditya Kresna Permana,

@ShlomiLevi Usa una versione precedente di@types/sequelize
Aviad Hadad l'

3
angular 8 può funzionare solo con dattiloscritto <V3.5
Ratshiḓaho Wayne

hai ragione, ho avuto questo problema di recente e dopo alcune ricerche ho scoperto un problema chiuso in Github, quindi per risolvere il problema ho dovuto aggiornare la versione dattiloscritta alla versione 3.7.2.
Thiago Valentim

23

Ho Angular 8 . sta funzionando con la versione dattiloscritta di 3.4.5. quindi risolvi questo problema fai sotto i passaggi.

passaggio 1) vai al file tsconfig.json

passaggio 2) aggiungere skipLibCheck: true nell'oggetto "compilerOptions". Per me funziona.

"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

  },

Grazie. "skipLibCheck": true (aggiunto a tsconfig relativo a NestJs), ha funzionato e NestJs con un'app che è stata avviata tramite NestG-app.
Алексей Медведев

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.