Assert that ambient classes merge with interfaces

Specifically, overloads are recognised as having the same export/ambient
flags when merging the two.
This commit is contained in:
Nathan Shively-Sanders
2015-10-12 14:26:45 -07:00
parent d6ae55708d
commit 3a55c849c7
4 changed files with 64 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
//// [ambientClassMergesOverloadsWithInterface.ts]
declare class C {
baz(): any;
foo(n: number): any;
}
interface C {
foo(n: number): any;
bar(): any;
}
//// [ambientClassMergesOverloadsWithInterface.js]

View File

@@ -0,0 +1,22 @@
=== tests/cases/compiler/ambientClassMergesOverloadsWithInterface.ts ===
declare class C {
>C : Symbol(C, Decl(ambientClassMergesOverloadsWithInterface.ts, 0, 0), Decl(ambientClassMergesOverloadsWithInterface.ts, 3, 1))
baz(): any;
>baz : Symbol(baz, Decl(ambientClassMergesOverloadsWithInterface.ts, 0, 17))
foo(n: number): any;
>foo : Symbol(foo, Decl(ambientClassMergesOverloadsWithInterface.ts, 1, 15), Decl(ambientClassMergesOverloadsWithInterface.ts, 4, 13))
>n : Symbol(n, Decl(ambientClassMergesOverloadsWithInterface.ts, 2, 8))
}
interface C {
>C : Symbol(C, Decl(ambientClassMergesOverloadsWithInterface.ts, 0, 0), Decl(ambientClassMergesOverloadsWithInterface.ts, 3, 1))
foo(n: number): any;
>foo : Symbol(foo, Decl(ambientClassMergesOverloadsWithInterface.ts, 1, 15), Decl(ambientClassMergesOverloadsWithInterface.ts, 4, 13))
>n : Symbol(n, Decl(ambientClassMergesOverloadsWithInterface.ts, 5, 8))
bar(): any;
>bar : Symbol(bar, Decl(ambientClassMergesOverloadsWithInterface.ts, 5, 24))
}

View File

@@ -0,0 +1,22 @@
=== tests/cases/compiler/ambientClassMergesOverloadsWithInterface.ts ===
declare class C {
>C : C
baz(): any;
>baz : () => any
foo(n: number): any;
>foo : { (n: number): any; (n: number): any; }
>n : number
}
interface C {
>C : C
foo(n: number): any;
>foo : { (n: number): any; (n: number): any; }
>n : number
bar(): any;
>bar : () => any
}

View File

@@ -0,0 +1,8 @@
declare class C {
baz(): any;
foo(n: number): any;
}
interface C {
foo(n: number): any;
bar(): any;
}