@ Types / Sequelize Error 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;
         ~~~~

Мої версії:

  • "@ type / sequelize": "^ 4.28.6"
  • "секвелізувати": "^ 5.8.10"
  • "sequelize-typecript": "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був складений з typecript 3.7 і видає файли визначення, які попередні версії не розуміють. Тож вам потрібно буде перейти на машинопис 3.7 або скористатися більш ранньою версією sequelize.


Що робити, якщо я не можу оновити до 3,7? є інша ідея?
Шломі Леві

це працює як шарм
Адітя Кресна Пермана

@ShlomiLevi Використовуйте більш ранню версію@types/sequelize
Aviad Hadad

3
кутовий 8 може працювати лише з машинописним текстом <V3.5
Ratshiḓaho Wayne

Ви маєте рацію, у мене виникла ця проблема недавно, і після деяких пошуків я виявив проблему, закриту в Github, тому для вирішення проблеми мені довелося оновити версію машинопису до версії 3.7.2.
Тіаго Валентин

23

У мене кутовий 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 з додатком, який запускався через gst ggg-app.
Алексей Медведев

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.