@ Types / Sequelize Ошибка TS1086: метод доступа не может быть объявлен в окружающем контексте


10

У меня есть проект, который показывает эту ошибку, когда я запускаю '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;
         ~~~~

Мои версии:

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

Проект отлично работает с nodemon, но не удается, когда я пытаюсь скомпилировать машинопись. Кто-нибудь знает эту ошибку?

Спасибо.

Ответы:


13

вам нужно использовать машинопись 3.7.

из примечаний к выпуску машинописного текста 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.

предположительно, sequelizeбыл скомпилирован с использованием машинописного текста 3.7 и испускает файлы определений, которые предыдущие версии не понимают. Таким образом, вам нужно обновить версию 3.7 или использовать более раннюю версию sequelize.


Что делать, если я не могу обновить до 3.7? есть другая идея?
Шломи Леви

это работает как очарование
Адитья Кресна Пермана

@ShlomiLevi Используйте более раннюю версию@types/sequelize
Aviad Hadad

3
Angular 8 может работать только с машинописным
шрифтом

Вы правы, у меня недавно была эта проблема, и после некоторых поисков я обнаружил, что проблема закрыта в Github, поэтому, чтобы исправить проблему, мне пришлось обновить версию машинописного текста до версии 3.7.2.
Тьяго Валентим

23

У меня есть Angular 8 . он работает с машинописной версией 3.4.5. так что решите эту проблему, сделайте следующие шаги.

шаг 1) перейти к файлу tsconfig.json

шаг 2) добавить skipLibCheck: true в объект «compilerOptions». Меня устраивает.

"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

  },

Спасибо. "skipLibCheck": true (добавлено в tsconfig, относящееся к NestJs), работает и NestJs с приложением, которое запускается через nest g ng-app.
Алексей Медведев

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.