File: tsxAttributeResolution1.symbols

package info (click to toggle)
node-typescript 5.0.4%2Bds1-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 459,116 kB
  • sloc: javascript: 1,972,754; makefile: 6; sh: 1
file content (86 lines) | stat: -rw-r--r-- 2,811 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
=== tests/cases/conformance/jsx/file.tsx ===
declare module JSX {
>JSX : Symbol(JSX, Decl(file.tsx, 0, 0))

	interface Element { }
>Element : Symbol(Element, Decl(file.tsx, 0, 20))

	interface IntrinsicElements {
>IntrinsicElements : Symbol(IntrinsicElements, Decl(file.tsx, 1, 22))

		test1: Attribs1;
>test1 : Symbol(IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>Attribs1 : Symbol(Attribs1, Decl(file.tsx, 7, 1))

		test2: { reqd: string };
>test2 : Symbol(IntrinsicElements.test2, Decl(file.tsx, 3, 18))
>reqd : Symbol(reqd, Decl(file.tsx, 4, 10))

		var: { var: string };
>var : Symbol(IntrinsicElements.var, Decl(file.tsx, 4, 26))
>var : Symbol(var, Decl(file.tsx, 5, 8))
	}
}
interface Attribs1 {
>Attribs1 : Symbol(Attribs1, Decl(file.tsx, 7, 1))

	x?: number;
>x : Symbol(Attribs1.x, Decl(file.tsx, 8, 20))

	s?: string;
>s : Symbol(Attribs1.s, Decl(file.tsx, 9, 12))
}

// OK
<test1 x={0} />; // OK
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 14, 6))

<test1 />; // OK
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))

<test1 data-x={true} />; // OK
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>data-x : Symbol(data-x, Decl(file.tsx, 16, 6))

<test2 reqd='true' />; // OK
>test2 : Symbol(JSX.IntrinsicElements.test2, Decl(file.tsx, 3, 18))
>reqd : Symbol(reqd, Decl(file.tsx, 18, 6))

<test2 reqd={'true'} />; // OK
>test2 : Symbol(JSX.IntrinsicElements.test2, Decl(file.tsx, 3, 18))
>reqd : Symbol(reqd, Decl(file.tsx, 19, 6))

// Errors
<test1 x={'0'} />; // Error, '0' is not number
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 22, 6))

<test1 y={0} />; // Error, no property "y"
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>y : Symbol(y, Decl(file.tsx, 23, 6))

<test1 y="foo" />; // Error, no property "y"
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>y : Symbol(y, Decl(file.tsx, 24, 6))

<test1 x="32" />; // Error, "32" is not number
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>x : Symbol(x, Decl(file.tsx, 25, 6))

<test1 var="10" />; // Error, no 'var' property
>test1 : Symbol(JSX.IntrinsicElements.test1, Decl(file.tsx, 2, 30))
>var : Symbol(var, Decl(file.tsx, 26, 6))

<test2 />; // Error, missing reqd
>test2 : Symbol(JSX.IntrinsicElements.test2, Decl(file.tsx, 3, 18))

<test2 reqd={10} />; // Error, reqd is not string
>test2 : Symbol(JSX.IntrinsicElements.test2, Decl(file.tsx, 3, 18))
>reqd : Symbol(reqd, Decl(file.tsx, 29, 6))

// Should be OK
<var var='var' />;
>var : Symbol(JSX.IntrinsicElements.var, Decl(file.tsx, 4, 26))
>var : Symbol(var, Decl(file.tsx, 32, 4))