Разделение кода в 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"]
}

0 ответов

Другие вопросы по тегам