webpack中的Typescript命名空间


  • src/model/engenerated/MyCLabs/Enum/Enum.ts
export namespace MyCLabs {
export namespace Enum {
export namespace Enum {

export class Enum {

value : null;

key : null;

cache : null;

instances : null;

constructor(obj : Enum) {



Object.assign(this,obj);

}
}
}
}
}
  • /test.ts
import MyCLabs from "src/model/generated/MyCLabs/Enum/Enum";
let test : MyCLabs.Enum.Enum.Enum = new MyCLabs.Enum.Enum.Enum();
  • tsconfig.json
{
"compilerOptions": {
"outDir": "../dist/js/",
"noImplicitAny": true,
"rootDir": ".",
"module": "es6",
"target": "es5",
"jsx": "react",
"allowJs": true,
"moduleResolution": "node"
}
}

我试图在webpack 5中使用TS的命名空间,但是webpack有以下错误:

TS2307找不到模块";路径/to/ts";或相应的类型声明:1个test.ts

当尝试导入所述ts文件时。我说webpack不支持TS命名空间是对的吗?如果是这样的话,当我在一个有几十个同名类的项目中工作时,我该如何最好地模仿命名空间策略

仅仅在tsconfig中有rootDir是不够的:

需要正确解析源目录的2个选项(baseUrl/include(

{
"compilerOptions": {
"outDir": "../dist/js/",
"noImplicitAny": true,
"rootDir": ".",
"baseUrl": "./src/",
"module": "CommonJS",
"target": "es5",
"jsx": "react",
"allowJs": true,
"moduleResolution": "node",
"include": [
"./src/**/*"
]
}
}

最新更新