node.js - LOCK definierad som ENUM och Interface i sequelize -> types/transaction.d.ts


Jag använder TypeScript för Node.js-server. Jag använder sequelize för MySQL-databasanslutning.

Allt fungerar bra om jag kör nodemon server.ts. Men npx tsc ger följande fel:

node_modules/sequelize/types/transaction.d.ts:121:13 - error TS2395: Individual declarations in merged declaration 'LOCK' must be all exported or all local.

121 export enum LOCK {
                ~~~~

node_modules/sequelize/types/transaction.d.ts:134:11 - error TS2395: Individual declarations in merged declaration 'LOCK' must be all exported or all local.

134 interface LOCK {
              ~~~~


Found 2 errors in the same file, starting at: node_modules/sequelize/types/transaction.d.ts:121

I package json-fil:

"sequelize": "^6.32.1",
"sequelize-typescript": "^2.1.5",
"typescript": "^5.1.6",
"@types/node": "^20.5.2",
"@types/sequelize": "^4.28.15",

Jag har "type": "commonjs" i min package.json-fil. Node-version v14.21.3

Det finns inga spår att felsöka. Jag har dubbelkollat versionerna och det finns ingen missmatchning.

Peka ut för mig vad jag saknar eller om det finns några tidigare frågor som jag inte kan hitta.

Svar #1

Detta fel orsakas av en skillnad mellan din TypeScript-version och den Sequelize-version du använder. Sequelize 6.32.1 använder TypeScript ^4.5.4.

Att installera samma TypeScript-version i mitt projekt löste det för mig:

npm install --save-dev typescript@^4.5.4
npx tsc