@ Tipos / Sequelize Error TS1086: Un descriptor de acceso no puede declararse en contexto ambiental

10

Tengo un proyecto que muestra este error cuando ejecuto '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;
         ~~~~

Mis versiones son:

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

El proyecto funciona bien con nodemon pero falla cuando intento compilar el mecanografiado. Alguien sabe este error?

Gracias.

Josel567
fuente

Respuestas:

13

necesitas usar el mecanografiado 3.7.

de las notas de lanzamiento del mecanografiado 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.

presumiblemente sequelizese compiló con el mecanografiado 3.7 y emite archivos de definición que las versiones anteriores no entienden. Por lo tanto, deberá actualizar a mecanografiado 3.7 o usar una versión anterior de sequelize.

Aviad Hadad
fuente
¿Qué pasa si no puedo actualizar a 3.7? tienes otra idea?
Shlomi Levi
funciona como un encanto
Aditya Kresna Permana
@ShlomiLevi Use una versión anterior de@types/sequelize
Aviad Hadad
3
angular 8 solo puede funcionar con mecanografiado <V3.5
Ratshiḓaho Wayne
tienes razón, tuve este problema recientemente y después de algunas búsquedas descubrí un problema cerrado en Github, así que para solucionar el problema tuve que actualizar la versión mecanografiada a la versión 3.7.2.
Thiago Valentim
23

Tengo angular 8 . está trabajando con la versión mecanografiada de 3.4.5. así que resuelva este problema, siga los pasos a continuación.

paso 1) ve al archivo tsconfig.json

paso 2) agrega skipLibCheck: true en el objeto "compilerOptions". Esto funciona para mi.

"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
fuente
Gracias. "skipLibCheck": verdadero (agregado a tsconfig relacionado con NestJs), funcionó y NestJs con la aplicación que se inició a través de nest g ng-app.
Алексей Медведев
5

El ajuste "skipLibCheck": truefuncionó para mí.

kimamula
fuente
También funcionó para mí, gracias.
electrotipo
¿En qué archivo necesito cambiar esto?
Krishn Patel
Archivo tsconfig.json
29er