Разделение кода в Webpack с использованием Typescript при использовании модулей классов
Я довольно много искал и, возможно, мой Google-фу подвел меня, но я не могу найти ответ на следующее:
Мы используем модули с классами TypeScript в них, и все работает нормально, пока я не попытаюсь реализовать разбиение кода в веб-пакете.
Если у меня есть это:
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()
И веб-пакет хорошо упаковывает, но я не получаю разделения кода.
Итак, я пытаюсь
//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"]
}