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