我做了一些搜索,也许我的Google-fu失败了,但我似乎无法找到以下答案:
我们使用带有TypeScript类的模块,一切正常,直到我尝试在webpack中实现代码分割。
如果我有这个:
import { MyClass } from "./myClass"
let thing = new MyClass()
thing.init()
我想对它进行代码拆分,所以我试试这个:
import { MyClass } from "./myClass"
async function load() {
const x = await import("./myClass")
let thing:MyClass = new x.MyClass()
thing.init()
}
load()
webpack收拾得很好,但我没有得到代码拆分。
然后我尝试
//import { MyClass } from "./myClass"
async function load() {
const x = await import("./myClass")
let thing:any = new x.MyClass()
thing.init()
}
load()
这个代码分裂,但是MyClass现在没有输入,我在编辑器/ ide中丢失了任何类型的知识。
我觉得我错过了一些简单的东西,但我无法解决这个问题。
非常感谢。
更新#1 - tsconfig
{
"compileOnSave": true,
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"alwaysStrict": true,
"experimentalDecorators": true,
"importHelpers": true,
"listFiles": false,
"module": "esnext",
"moduleResolution": "node",
"noEmitHelpers": true,
"noEmitOnError": false,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noImplicitThis": true,
"noImplicitAny": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"outDir": "js",
"removeComments": false,
"sourceMap": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"target": "es2017",
"typeRoots": ["../node_modules/@types", "../typings"]
},
"exclude": ["../node_modules", "js/**/*"],
"include": ["ts/**/*.ts", "../typings/globals/*.d.ts"]
}