我有一个项目在运行'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;
~~~~
我的版本是:
该项目在nodemon上正常运行,但是在尝试编译打字稿时失败。有人知道这个错误吗?
谢谢。
答案 0 :(得分:34)
我有 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
},
答案 1 :(得分:8)
您需要使用打字稿3.7。
from typescript 3.7 release notes:
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编译的,并且会发出以前版本无法理解的定义文件。因此,您需要升级到TypeScript 3.7或使用早期版本的sequelize。
答案 2 :(得分:7)
设置"skipLibCheck": true
对我有用。