@ 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-typescript”:“ 1.0.0-beta.4”

该项目可与nodemon正常运行,但在尝试编译打字稿时失败。有人知道这个错误吗?

谢谢。

Answers:


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是使用TypeScript 3.7编译的,并且会发出以前版本不了解的定义文件。因此,您需要升级到TypeScript 3.7或使用早期版本的sequelize。


如果我不能升级到3.7,该怎么办?还有其他想法吗?
Shlomi Levi

它像魅力一样运作
Aditya Kresna Permana

@ShlomiLevi使用早期版本的@types/sequelize
Aviad Hadad

3
角8只能与打字稿<V3.5工作
Ratshiḓaho韦恩

没错,我最近遇到了这个问题,经过一些搜索后,我发现Github中关闭了一个问题,因此要解决该问题,我必须将打字稿版本升级到3.7.2版本。
Thiago Valentim

23

我有Angular 8。它正在使用3.4.5的打字稿版本。因此,请按照以下步骤解决此问题。

步骤1)转到tsconfig.json文件

第2步)在“ compilerOptions”对象中添加skipLibCheck:true。这个对我有用。

"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(已添加到与NestJs相关的tsconfig中),并且与通过嵌套g ng-app初始化的应用一起工作和NestJs。
АлексейМедведев

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.