120 lines
1.6 KiB
Text
120 lines
1.6 KiB
Text
=== tests/cases/conformance/interfaces/declarationMerging/mergeTwoInterfaces2.ts ===
|
|
// two interfaces with the same root module should merge
|
|
|
|
// root module now multiple module declarations
|
|
module M2 {
|
|
>M2 : typeof M2
|
|
|
|
export interface A {
|
|
>A : A
|
|
|
|
foo: string;
|
|
>foo : string
|
|
}
|
|
|
|
var a: A;
|
|
>a : A
|
|
>A : A
|
|
|
|
var r1 = a.foo
|
|
>r1 : string
|
|
>a.foo : string
|
|
>a : A
|
|
>foo : string
|
|
|
|
var r2 = a.bar;
|
|
>r2 : number
|
|
>a.bar : number
|
|
>a : A
|
|
>bar : number
|
|
}
|
|
|
|
module M2 {
|
|
>M2 : typeof M2
|
|
|
|
export interface A {
|
|
>A : A
|
|
|
|
bar: number;
|
|
>bar : number
|
|
}
|
|
|
|
var a: A;
|
|
>a : A
|
|
>A : A
|
|
|
|
var r1 = a.foo
|
|
>r1 : string
|
|
>a.foo : string
|
|
>a : A
|
|
>foo : string
|
|
|
|
var r2 = a.bar;
|
|
>r2 : number
|
|
>a.bar : number
|
|
>a : A
|
|
>bar : number
|
|
}
|
|
|
|
// same as above but with an additional level of nesting
|
|
module M2 {
|
|
>M2 : typeof M2
|
|
|
|
export module M3 {
|
|
>M3 : typeof M3
|
|
|
|
export interface A {
|
|
>A : A
|
|
|
|
foo: string;
|
|
>foo : string
|
|
}
|
|
|
|
var a: A;
|
|
>a : A
|
|
>A : A
|
|
|
|
var r1 = a.foo
|
|
>r1 : string
|
|
>a.foo : string
|
|
>a : A
|
|
>foo : string
|
|
|
|
var r2 = a.bar;
|
|
>r2 : number
|
|
>a.bar : number
|
|
>a : A
|
|
>bar : number
|
|
}
|
|
}
|
|
|
|
module M2 {
|
|
>M2 : typeof M2
|
|
|
|
export module M3 {
|
|
>M3 : typeof M3
|
|
|
|
export interface A {
|
|
>A : A
|
|
|
|
bar: number;
|
|
>bar : number
|
|
}
|
|
|
|
var a: A;
|
|
>a : A
|
|
>A : A
|
|
|
|
var r1 = a.foo
|
|
>r1 : string
|
|
>a.foo : string
|
|
>a : A
|
|
>foo : string
|
|
|
|
var r2 = a.bar;
|
|
>r2 : number
|
|
>a.bar : number
|
|
>a : A
|
|
>bar : number
|
|
}
|
|
}
|