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))
|