File: checkJsxChildrenProperty14.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 (155 lines) | stat: -rw-r--r-- 3,884 bytes parent folder | download | duplicates (5)
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
=== tests/cases/conformance/jsx/file.tsx ===
import React = require('react');
>React : typeof React

interface Prop {
    a: number,
>a : number

    b: string,
>b : string

    children: JSX.Element | JSX.Element[];
>children : JSX.Element | JSX.Element[]
>JSX : any
>JSX : any
}

class Button extends React.Component<any, any> {
>Button : Button
>React.Component : React.Component<any, any>
>React : typeof React
>Component : typeof React.Component

    render() {
>render : () => JSX.Element

        return (<div>My Button</div>)
>(<div>My Button</div>) : JSX.Element
><div>My Button</div> : JSX.Element
>div : any
>div : any
    }
}

function AnotherButton(p: any) {
>AnotherButton : (p: any) => JSX.Element
>p : any

    return <h1>Just Another Button</h1>;
><h1>Just Another Button</h1> : JSX.Element
>h1 : any
>h1 : any
}

function Comp(p: Prop) {
>Comp : (p: Prop) => JSX.Element
>p : Prop

    return <div>{p.b}</div>;
><div>{p.b}</div> : JSX.Element
>div : any
>p.b : string
>p : Prop
>b : string
>div : any
}

// OK
let k1 = <Comp a={10} b="hi"><></><Button /><AnotherButton /></Comp>;
>k1 : JSX.Element
><Comp a={10} b="hi"><></><Button /><AnotherButton /></Comp> : JSX.Element
>Comp : (p: Prop) => JSX.Element
>a : number
>10 : 10
>b : string
><></> : JSX.Element
><Button /> : JSX.Element
>Button : typeof Button
><AnotherButton /> : JSX.Element
>AnotherButton : (p: any) => JSX.Element
>Comp : (p: Prop) => JSX.Element

let k2 = <Comp a={10} b="hi"><><Button /></><AnotherButton /></Comp>;
>k2 : JSX.Element
><Comp a={10} b="hi"><><Button /></><AnotherButton /></Comp> : JSX.Element
>Comp : (p: Prop) => JSX.Element
>a : number
>10 : 10
>b : string
><><Button /></> : JSX.Element
><Button /> : JSX.Element
>Button : typeof Button
><AnotherButton /> : JSX.Element
>AnotherButton : (p: any) => JSX.Element
>Comp : (p: Prop) => JSX.Element

let k3 = <Comp a={10} b="hi"><><Button /><AnotherButton /></></Comp>;
>k3 : JSX.Element
><Comp a={10} b="hi"><><Button /><AnotherButton /></></Comp> : JSX.Element
>Comp : (p: Prop) => JSX.Element
>a : number
>10 : 10
>b : string
><><Button /><AnotherButton /></> : JSX.Element
><Button /> : JSX.Element
>Button : typeof Button
><AnotherButton /> : JSX.Element
>AnotherButton : (p: any) => JSX.Element
>Comp : (p: Prop) => JSX.Element

interface SingleChildProp {
    a: number,
>a : number

    b: string,
>b : string

    children: JSX.Element;
>children : JSX.Element
>JSX : any
}

function SingleChildComp(p: SingleChildProp) {
>SingleChildComp : (p: SingleChildProp) => JSX.Element
>p : SingleChildProp

    return <div>{p.b}</div>;
><div>{p.b}</div> : JSX.Element
>div : any
>p.b : string
>p : SingleChildProp
>b : string
>div : any
}

// OK
let k4 = <SingleChildComp a={10} b="hi"><><Button /><AnotherButton /></></SingleChildComp>;
>k4 : JSX.Element
><SingleChildComp a={10} b="hi"><><Button /><AnotherButton /></></SingleChildComp> : JSX.Element
>SingleChildComp : (p: SingleChildProp) => JSX.Element
>a : number
>10 : 10
>b : string
><><Button /><AnotherButton /></> : JSX.Element
><Button /> : JSX.Element
>Button : typeof Button
><AnotherButton /> : JSX.Element
>AnotherButton : (p: any) => JSX.Element
>SingleChildComp : (p: SingleChildProp) => JSX.Element

// Error
let k5 = <SingleChildComp a={10} b="hi"><></><Button /><AnotherButton /></SingleChildComp>;
>k5 : JSX.Element
><SingleChildComp a={10} b="hi"><></><Button /><AnotherButton /></SingleChildComp> : JSX.Element
>SingleChildComp : (p: SingleChildProp) => JSX.Element
>a : number
>10 : 10
>b : string
><></> : JSX.Element
><Button /> : JSX.Element
>Button : typeof Button
><AnotherButton /> : JSX.Element
>AnotherButton : (p: any) => JSX.Element
>SingleChildComp : (p: SingleChildProp) => JSX.Element