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 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
=== tests/cases/conformance/jsx/file.tsx ===
import React = require('react')
>React : typeof React
declare function OneThing(k: {yxx: string}): JSX.Element;
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>k : { yxx: string; }
>yxx : string
>JSX : any
declare function OneThing(k: {yxx1: string, children: string}): JSX.Element;
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>k : { yxx1: string; children: string; }
>yxx1 : string
>children : string
>JSX : any
declare function OneThing(l: {yy: number, yy1: string}): JSX.Element;
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>l : { yy: number; yy1: string; }
>yy : number
>yy1 : string
>JSX : any
declare function OneThing(l: {yy: number, yy1: string, yy2: boolean}): JSX.Element;
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>l : { yy: number; yy1: string; yy2: boolean; }
>yy : number
>yy1 : string
>yy2 : boolean
>JSX : any
declare function OneThing(l1: {data: string, "data-prop": boolean}): JSX.Element;
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>l1 : { data: string; "data-prop": boolean; }
>data : string
>"data-prop" : boolean
>JSX : any
// OK
const c1 = <OneThing yxx='ok' />
>c1 : JSX.Element
><OneThing yxx='ok' /> : JSX.Element
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>yxx : string
const c2 = <OneThing yy={100} yy1="hello"/>
>c2 : JSX.Element
><OneThing yy={100} yy1="hello"/> : JSX.Element
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>yy : number
>100 : 100
>yy1 : string
const c3 = <OneThing yxx="hello" ignore-prop />
>c3 : JSX.Element
><OneThing yxx="hello" ignore-prop /> : JSX.Element
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>yxx : string
>ignore-prop : true
const c4 = <OneThing data="hello" data-prop />
>c4 : JSX.Element
><OneThing data="hello" data-prop /> : JSX.Element
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>data : string
>data-prop : true
const c5 = <OneThing yxx1='ok'>Hello</OneThing>
>c5 : JSX.Element
><OneThing yxx1='ok'>Hello</OneThing> : JSX.Element
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
>yxx1 : string
>OneThing : { (k: { yxx: string; }): JSX.Element; (k: { yxx1: string; children: string; }): JSX.Element; (l: { yy: number; yy1: string; }): JSX.Element; (l: { yy: number; yy1: string; yy2: boolean; }): JSX.Element; (l1: { data: string; "data-prop": boolean; }): JSX.Element; }
declare function TestingOneThing({y1: string}): JSX.Element;
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>y1 : any
>string : any
>JSX : any
declare function TestingOneThing(j: {"extra-data": string, yy?: string}): JSX.Element;
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>j : { "extra-data": string; yy?: string; }
>"extra-data" : string
>yy : string
>JSX : any
declare function TestingOneThing(n: {yy: number, direction?: number}): JSX.Element;
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>n : { yy: number; direction?: number; }
>yy : number
>direction : number
>JSX : any
declare function TestingOneThing(n: {yy: string, name: string}): JSX.Element;
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>n : { yy: string; name: string; }
>yy : string
>name : string
>JSX : any
// OK
const d1 = <TestingOneThing y1 extra-data />;
>d1 : JSX.Element
><TestingOneThing y1 extra-data /> : JSX.Element
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>y1 : true
>extra-data : true
const d2 = <TestingOneThing extra-data="hello" />;
>d2 : JSX.Element
><TestingOneThing extra-data="hello" /> : JSX.Element
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>extra-data : string
const d3 = <TestingOneThing extra-data="hello" yy="hihi" />;
>d3 : JSX.Element
><TestingOneThing extra-data="hello" yy="hihi" /> : JSX.Element
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>extra-data : string
>yy : string
const d4 = <TestingOneThing extra-data="hello" yy={9} direction={10} />;
>d4 : JSX.Element
><TestingOneThing extra-data="hello" yy={9} direction={10} /> : JSX.Element
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>extra-data : string
>yy : number
>9 : 9
>direction : number
>10 : 10
const d5 = <TestingOneThing extra-data="hello" yy="hello" name="Bob" />;
>d5 : JSX.Element
><TestingOneThing extra-data="hello" yy="hello" name="Bob" /> : JSX.Element
>TestingOneThing : { ({ y1: string }: { y1: any; }): JSX.Element; (j: { "extra-data": string; yy?: string; }): JSX.Element; (n: { yy: number; direction?: number; }): JSX.Element; (n: { yy: string; name: string; }): JSX.Element; }
>extra-data : string
>yy : string
>name : string
declare function TestingOptional(a: {y1?: string, y2?: number}): JSX.Element;
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>a : { y1?: string; y2?: number; }
>y1 : string
>y2 : number
>JSX : any
declare function TestingOptional(a: {y1: boolean, y2?: number, y3: boolean}): JSX.Element;
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>a : { y1: boolean; y2?: number; y3: boolean; }
>y1 : boolean
>y2 : number
>y3 : boolean
>JSX : any
// OK
const e1 = <TestingOptional />
>e1 : JSX.Element
><TestingOptional /> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
const e3 = <TestingOptional y1="hello"/>
>e3 : JSX.Element
><TestingOptional y1="hello"/> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>y1 : string
const e4 = <TestingOptional y1="hello" y2={1000} />
>e4 : JSX.Element
><TestingOptional y1="hello" y2={1000} /> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>y1 : string
>y2 : number
>1000 : 1000
const e5 = <TestingOptional y1 y3/>
>e5 : JSX.Element
><TestingOptional y1 y3/> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>y1 : true
>y3 : true
const e6 = <TestingOptional y1 y3 y2={10} />
>e6 : JSX.Element
><TestingOptional y1 y3 y2={10} /> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>y1 : true
>y3 : true
>y2 : number
>10 : 10
const e2 = <TestingOptional y1 y3 extra-prop/>
>e2 : JSX.Element
><TestingOptional y1 y3 extra-prop/> : JSX.Element
>TestingOptional : { (a: { y1?: string; y2?: number; }): JSX.Element; (a: { y1: boolean; y2?: number; y3: boolean; }): JSX.Element; }
>y1 : true
>y3 : true
>extra-prop : true
|