File: overloadBindingAcrossDeclarationBoundaries2.js

package info (click to toggle)
node-typescript 3.3.3333-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 324,548 kB
  • sloc: makefile: 6; sh: 3
file content (48 lines) | stat: -rw-r--r-- 948 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//// [tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries2.ts] ////

//// [overloadBindingAcrossDeclarationBoundaries_file0.ts]
interface Opt1 {
    p?: any;
}
interface Opt2 {
    q?: any;
}
interface Opt3 {
    r?: any;
}
interface Opt4 {
    s?: any;
}

interface A {
    a(o: Opt1): Opt1;
    a(o: Opt2): Opt2;
    (o: Opt1): Opt1;
    (o: Opt2): Opt2;
    new (o: Opt1): Opt1;
    new (o: Opt2): Opt2;
}

//// [overloadBindingAcrossDeclarationBoundaries_file1.ts]
interface A {
    a(o: Opt3): Opt3;
    a(o: Opt4): Opt4;
    (o: Opt3): Opt3;
    (o: Opt4): Opt4;
    new (o: Opt3): Opt3;
    new (o: Opt4): Opt4;
}

var a: A;
// These should all be Opt3
var a1 = a.a({});
var a1 = a({});
var a1 = new a({});

//// [overloadBindingAcrossDeclarationBoundaries_file0.js]
//// [overloadBindingAcrossDeclarationBoundaries_file1.js]
var a;
// These should all be Opt3
var a1 = a.a({});
var a1 = a({});
var a1 = new a({});