到目前为止,我在“ ./src”中有2个文件:index.ts
和setConfig.ts
。
都像这样导入“ fs”和“ path”:
const fs = require('fs');
const path = require('path');
...这就是Typescript很不喜欢的东西;编译时说:
src/index.ts:1:7 - error TS2451: Cannot redeclare block-scoped variable 'fs'.
1 const fs = require('fs');
~~
src/setConfig.ts:1:7
1 const fs = require('fs');
~~
'fs' was also declared here.
src/index.ts:2:7 - error TS2451: Cannot redeclare block-scoped variable 'path'.
2 const path = require('path');
~~~~
src/setConfig.ts:2:7
2 const path = require('path');
~~~~
'path' was also declared here.
src/setConfig.ts:1:7 - error TS2451: Cannot redeclare block-scoped variable 'fs'.
1 const fs = require('fs');
~~
src/index.ts:1:7
1 const fs = require('fs');
~~
'fs' was also declared here.
src/setConfig.ts:2:7 - error TS2451: Cannot redeclare block-scoped variable 'path'.
2 const path = require('path');
~~~~
src/index.ts:2:7
2 const path = require('path');
~~~~
'path' was also declared here.
Found 4 errors.
但是,当我将其保留在
setConfig.ts
节点中时,它抱怨说它不知道'fs'...。我的
tsconfig.json
看起来像这样:{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"outDir": "./dist/",
"rootDir": "./src/",
"strict": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true
}
}
那么,为了使我的已编译JavaScript正常工作,我还必须添加或做什么?
最佳答案
在setConfig.ts
模块中添加导出应该可以解决该问题。
// setConfig.ts
export default {
// your exports
};
// Or
export function foo() {}
关于javascript - tsconfig.json与node.js模块一起使用的最佳设置是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61541569/