我已经做了很多搜索,也许我的 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"]
}