@ Types / Sequelize Error TS1086: Accessor nie może być zadeklarowany w kontekście otoczenia


10

Mam projekt, który pokazuje ten błąd po uruchomieniu „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;
         ~~~~

Moje wersje to:

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

Projekt działa dobrze z nodemonem, ale kończy się niepowodzeniem, gdy próbuję skompilować maszynopis. Czy ktoś zna ten błąd?

Dzięki.

Odpowiedzi:


13

musisz użyć maszynopisu 3.7.

z uwag do wydania maszynopisu 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.

więc prawdopodobnie sequelizezostał skompilowany z pismem maszynowym 3.7 i emituje pliki definicji, których poprzednie wersje nie rozumieją. Musisz więc uaktualnić do maszynopisu 3.7 lub użyć wcześniejszej wersji sekwencjonowania.


Co jeśli nie mogę zaktualizować do wersji 3.7? masz inny pomysł?
Shlomi Levi,

działa jak urok
Aditya Kresna Permana,

@ShlomiLevi Użyj wcześniejszej wersji@types/sequelize
Aviad Hadad,

3
kątowy 8 może działać tylko z maszynowym <V3.5
Ratshiḓaho Wayne

masz rację, miałem ostatnio ten problem i po kilku poszukiwaniach odkryłem problem zamknięty w Githubie, więc aby go naprawić, musiałem zaktualizować wersję maszynopisu do wersji 3.7.2.
Thiago Valentim

23

mam Angular 8 . działa z wersją maszynopisu 3.4.5. więc rozwiąż ten problem, wykonaj poniższe czynności.

krok 1) przejdź do pliku tsconfig.json pliku

krok 2) dodaj skipLibCheck: true w obiekcie „compilerOptions”. Mi to pasuje.

"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

  },

Dzięki. „skipLibCheck”: true (dodany do tsconfig, który dotyczył NestJs), działał i NestJs z aplikacją, która została zainicjowana przez nest g ng-app.
Алексей Медведев

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.