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
|
=== tests/cases/conformance/jsx/file.tsx ===
declare module JSX {
interface Element { }
interface IntrinsicElements {
test1: Attribs1;
>test1 : Attribs1
}
}
interface Attribs1 {
c1?: (x: string) => void;
>c1 : (x: string) => void
>x : string
}
// OK
<test1 c1={(x) => x.length} />; // OK
><test1 c1={(x) => x.length} /> : JSX.Element
>test1 : any
>c1 : (x: string) => number
>(x) => x.length : (x: string) => number
>x : string
>x.length : number
>x : string
>length : number
<test1 data-c1={(x) => x.leng} />; // OK
><test1 data-c1={(x) => x.leng} /> : JSX.Element
>test1 : any
>data-c1 : (x: any) => any
>(x) => x.leng : (x: any) => any
>x : any
>x.leng : any
>x : any
>leng : any
// Errors
<test1 c1={(x) => x.leng} />; // Error, no leng on 'string'
><test1 c1={(x) => x.leng} /> : JSX.Element
>test1 : any
>c1 : (x: string) => any
>(x) => x.leng : (x: string) => any
>x : string
>x.leng : any
>x : string
>leng : any
|