File: overloadingOnConstants1.types

package info (click to toggle)
node-typescript 5.0.4%2Bds1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 459,140 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (107 lines) | stat: -rw-r--r-- 4,789 bytes parent folder | download | duplicates (4)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
=== tests/cases/compiler/overloadingOnConstants1.ts ===
class Base { foo() { } }
>Base : Base
>foo : () => void

class Derived1 extends Base { bar() { } }
>Derived1 : Derived1
>Base : Base
>bar : () => void

class Derived2 extends Base { baz() { } }
>Derived2 : Derived2
>Base : Base
>baz : () => void

class Derived3 extends Base { biz() { } }
>Derived3 : Derived3
>Base : Base
>biz : () => void

interface Document2 {
    createElement(tagName: 'canvas'): Derived1;
>createElement : { (tagName: 'canvas'): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>tagName : "canvas"

    createElement(tagName: 'div'): Derived2;
>createElement : { (tagName: "canvas"): Derived1; (tagName: 'div'): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>tagName : "div"

    createElement(tagName: 'span'): Derived3;
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: 'span'): Derived3; (tagName: string): Base; }
>tagName : "span"

    createElement(tagName: string): Base;
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>tagName : string
}

var d2: Document2;
>d2 : Document2

// these are ok
var htmlElement: Base = d2.createElement("yo")
>htmlElement : Base
>d2.createElement("yo") : Base
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"yo" : "yo"

var htmlCanvasElement: Derived1 = d2.createElement("canvas");
>htmlCanvasElement : Derived1
>d2.createElement("canvas") : Derived1
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"canvas" : "canvas"

var htmlDivElement: Derived2 = d2.createElement("div");
>htmlDivElement : Derived2
>d2.createElement("div") : Derived2
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"div" : "div"

var htmlSpanElement: Derived3 = d2.createElement("span");
>htmlSpanElement : Derived3
>d2.createElement("span") : Derived3
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"span" : "span"

// these are errors
var htmlElement2: Derived1 = d2.createElement("yo")
>htmlElement2 : Derived1
>d2.createElement("yo") : Base
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"yo" : "yo"

var htmlCanvasElement2: Derived3 = d2.createElement("canvas");
>htmlCanvasElement2 : Derived3
>d2.createElement("canvas") : Derived1
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"canvas" : "canvas"

var htmlDivElement2: Derived1 = d2.createElement("div");
>htmlDivElement2 : Derived1
>d2.createElement("div") : Derived2
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"div" : "div"

var htmlSpanElement2: Derived1 = d2.createElement("span");
>htmlSpanElement2 : Derived1
>d2.createElement("span") : Derived3
>d2.createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>d2 : Document2
>createElement : { (tagName: "canvas"): Derived1; (tagName: "div"): Derived2; (tagName: "span"): Derived3; (tagName: string): Base; }
>"span" : "span"