每当我在超过 1 个文件中导入相同的 npm 模块时,我一运行 TypeScript 编译器就会收到错误“
error TS2451: Cannot redeclare block-scoped variable 'os'
”tsc
。我的项目设置如下所示。
我正在使用 NodeJS v18.15.0.
目录结构
Project_Root
├─ main.ts
├─ worker.ts
├─ package.json
└─ tsconfig.json
main.ts
const worker = require('./worker');
const os = require('os');
console.log('name = ' + worker.getName() );
console.log('memory = ' + os.freemem() );
worker.ts
const os = require('os');
module.exports =
class worker {
static getName() : string { return "worker-" + os.freemem(); }
}
package.json
{
"devDependencies": {
"@types/node": "^18.15.11",
"typescript": "^5.0.3"
}
}
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"sourceMap": false
},
"exclude": ["node_modules"]
}
我尝试了以下帖子中的前 3 个答案,但没有成功:
相关帖子 | 结果 |
---|---|
错误 TS2451:无法重新声明块作用域变量“$” | 同样的错误(添加“skipLibCheck: true”标志后) |
How to solve this Cannot redeclare block scoped variable 'ngDevMode'? | 不适用(我没有使用 Angular) |
TS2451:无法重新声明块作用域变量 | 不适用(我没有使用 ESLint) |
在角度 CLI 中获取构建错误:无法重新声明块范围变量'ngDevMode' | 不适用(我没有使用 Angular) |
在 TypeScript 中导入 npm JS 模块 | 不适用(我没有使用 Electron) |