=== tests/cases/conformance/externalModules/foo_1.ts === import foo = require("./foo_0"); >foo : typeof foo // None of the below should cause a runtime dependency on foo_0 import f = foo.M1; >f : unknown >foo : typeof foo >M1 : unknown var i: f.I2; >i : f.I2 >f : unknown >I2 : f.I2 var x: foo.C1 = <{m1: number}>{}; >x : foo.C1 >foo : unknown >C1 : foo.C1 ><{m1: number}>{} : { m1: number; } >m1 : number >{} : {} var y: typeof foo.C1.s1 = false; >y : boolean >foo : typeof foo >C1 : typeof foo.C1 >s1 : boolean var z: foo.M1.I2; >z : f.I2 >foo : unknown >M1 : unknown >I2 : f.I2 var e: number = 0; >e : number >0 : foo.E1 >foo : unknown >E1 : foo.E1 === tests/cases/conformance/externalModules/foo_0.ts === export class C1 { >C1 : C1 m1 = 42; >m1 : number static s1 = true; >s1 : boolean } export interface I1 { >I1 : I1 name: string; >name : string age: number; >age : number } export module M1 { >M1 : unknown export interface I2 { >I2 : I2 foo: string; >foo : string } } export enum E1 { >E1 : E1 A,B,C >A : E1 >B : E1 >C : E1 }