到目前为止,我在“ ./src”中有2个文件:index.tssetConfig.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/

10-12 15:13