File: tsxElementResolution8.types

package info (click to toggle)
node-typescript 5.2.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 497,488 kB
  • sloc: javascript: 2,107,274; makefile: 6; sh: 1
file content (64 lines) | stat: -rw-r--r-- 949 bytes parent folder | download
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
//// [tests/cases/conformance/jsx/tsxElementResolution8.tsx] ////

=== file.tsx ===
declare module JSX {
	interface Element { }
	interface IntrinsicElements { }
}

// Error
var Div = 3;
>Div : number
>3 : 3

<Div />;
><Div /> : JSX.Element
>Div : number

// OK
function Fact(): any { return null; }
>Fact : () => any

<Fact />
><Fact /> : JSX.Element
>Fact : () => any

// Error
function Fnum(): number{ return 42; }
>Fnum : () => number
>42 : 42

<Fnum />
><Fnum /> : JSX.Element
>Fnum : () => number

interface Obj1 {
	new(): {};
	(): number;
}
var Obj1: Obj1;
>Obj1 : Obj1

<Obj1 />; // OK, prefer construct signatures
><Obj1 /> : JSX.Element
>Obj1 : Obj1

interface Obj2 {
	(): number;
}
var Obj2: Obj2;
>Obj2 : Obj2

<Obj2 />; // Error
><Obj2 /> : JSX.Element
>Obj2 : Obj2

interface Obj3 {
}
var Obj3: Obj3;
>Obj3 : Obj3

<Obj3 />; // Error
><Obj3 /> : JSX.Element
>Obj3 : Obj3