// @module: commonjs // @target: esnext // @filename: 0.ts export class B { print() { return "I am B"} } // @filename: 2.ts // We use Promise for now as there is no way to specify shape of module object function foo(x: Promise) { x.then(value => { let b = new value.B(); b.print(); }) } foo(import("./0"));