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
|
=== tests/cases/conformance/jsx/file.tsx ===
import React = require('react');
>React : typeof React
const obj = {};
>obj : {}
>{} : {}
const obj1 = {
>obj1 : { x: number; }
>{ x: 2} : { x: number; }
x: 2
>x : number
>2 : 2
}
const obj3 = {
>obj3 : { y: boolean; overwrite: string; }
>{ y: true, overwrite: "hi"} : { y: boolean; overwrite: string; }
y: true,
>y : boolean
>true : true
overwrite: "hi"
>overwrite : string
>"hi" : "hi"
}
interface Prop {
x: number
>x : number
y: boolean
>y : boolean
overwrite: string
>overwrite : string
}
class OverWriteAttr extends React.Component<Prop, {}> {
>OverWriteAttr : OverWriteAttr
>React.Component : React.Component<Prop, {}>
>React : typeof React
>Component : typeof React.Component
render() {
>render : () => JSX.Element
return <div>Hello</div>;
><div>Hello</div> : JSX.Element
>div : any
>div : any
}
}
// OK
let x = <OverWriteAttr {...obj} y overwrite="hi" {...obj1} />
>x : JSX.Element
><OverWriteAttr {...obj} y overwrite="hi" {...obj1} /> : JSX.Element
>OverWriteAttr : typeof OverWriteAttr
>obj : {}
>y : true
>overwrite : string
>obj1 : { x: number; }
let x1 = <OverWriteAttr {...obj1} {...obj3} />
>x1 : JSX.Element
><OverWriteAttr {...obj1} {...obj3} /> : JSX.Element
>OverWriteAttr : typeof OverWriteAttr
>obj1 : { x: number; }
>obj3 : { y: boolean; overwrite: string; }
|