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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
=== tests/cases/conformance/jsx/file.tsx ===
import React = require('react');
>React : typeof React
const obj = {};
>obj : {}
>{} : {}
const obj1: {x: 2} = {
>obj1 : { x: 2; }
>x : 2
>{ x: 2} : { x: 2; }
x: 2
>x : 2
>2 : 2
}
const obj3: {y: false, overwrite: string} = {
>obj3 : { y: false; overwrite: string; }
>y : false
>false : false
>overwrite : string
>{ y: false, overwrite: "hi"} : { y: false; overwrite: string; }
y: false,
>y : false
>false : false
overwrite: "hi"
>overwrite : string
>"hi" : "hi"
}
interface Prop {
x: 2
>x : 2
y: false
>y : false
>false : false
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
}
}
let anyobj: any;
>anyobj : any
// Error
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: 2; }
let x1 = <OverWriteAttr overwrite="hi" {...obj1} x={3} {...{y: true}} />
>x1 : JSX.Element
><OverWriteAttr overwrite="hi" {...obj1} x={3} {...{y: true}} /> : JSX.Element
>OverWriteAttr : typeof OverWriteAttr
>overwrite : string
>obj1 : { x: 2; }
>x : number
>3 : 3
>{y: true} : { y: boolean; }
>y : boolean
>true : true
let x2 = <OverWriteAttr {...anyobj} x={3} />
>x2 : JSX.Element
><OverWriteAttr {...anyobj} x={3} /> : JSX.Element
>OverWriteAttr : typeof OverWriteAttr
>anyobj : any
>x : 3
>3 : 3
let x3 = <OverWriteAttr overwrite="hi" {...obj1} {...{y: true}} />
>x3 : JSX.Element
><OverWriteAttr overwrite="hi" {...obj1} {...{y: true}} /> : JSX.Element
>OverWriteAttr : typeof OverWriteAttr
>overwrite : string
>obj1 : { x: 2; }
>{y: true} : { y: boolean; }
>y : boolean
>true : true
|