@ Types / Sequelize Error TS1086: Um acessador não pode ser declarado no contexto do ambiente

10

Eu tenho um projeto que mostra esse erro quando executo '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;
         ~~~~

Minhas versões são:

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

O projeto funciona bem com nodemon, mas falha quando tento compilar o texto datilografado. Alguém conhece esse erro?

Obrigado.

Josel567
fonte

Respostas:

13

você precisa usar o texto datilografado 3.7.

das notas de versão datilografadas 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.

presumivelmente, sequelizefoi compilado com o texto datilografado 3.7 e emite arquivos de definição que as versões anteriores não entendem. Portanto, você precisará atualizar para o texto datilografado 3.7 ou usar uma versão anterior do sequelize.

Aviad Hadad
fonte
E se eu não conseguir atualizar para o 3.7? tem outra ideia?
Shlomi Levi
funciona como um encanto
Aditya Kresna Permana
@ShlomiLevi Use uma versão anterior do@types/sequelize
Aviad Hadad
3
angular 8 só pode funcionar com
texto
você está certo, tive esse problema recentemente e, depois de algumas pesquisas, descobri um problema encerrado no Github. Para corrigir o problema, tive que atualizar a versão datilografada para a versão 3.7.2.
Thiago Valentim
23

Eu tenho o Angular 8 . está trabalhando com a versão datilografada do 3.4.5. para resolver esse problema, siga as etapas abaixo.

etapa 1) vá para o arquivo tsconfig.json

etapa 2) adicione skipLibCheck: true no objeto "compilerOptions". Funciona para mim.

"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
fonte
Obrigado. "skipLibCheck": true (adicionado ao tsconfig relacionado aos NestJs), funcionou e NestJs com o aplicativo iniciado pelo nest g ng-app.
Алексей Медведев
5

Cenário "skipLibCheck": truefuncionou para mim.

kimamula
fonte
Trabalhou para mim também, obrigado.
electrotype
Em qual arquivo eu preciso alterar isso?
krishn Patel
Arquivo tsconfig.json
29er