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

Josel567
źródło

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.

Aviad Hadad
źródło
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

  },
krishn Patel
źródło
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.
Алексей Медведев
5

Otoczenie "skipLibCheck": truedziałało dla mnie.

kimamula
źródło
Też dla mnie pracował, dzięki.
electropype
W którym pliku muszę to zmienić?
krishn Patel
Plik tsconfig.json
29er