tests/cases/conformance/jsx/file.tsx(24,11): error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
  Types of property 'children' are incompatible.
    Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
      Type '(string | Element)[]' is not assignable to type 'Element[]'.
        Type 'string | Element' is not assignable to type 'Element'.
          Type 'string' is not assignable to type 'Element'.
tests/cases/conformance/jsx/file.tsx(25,11): error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
  Types of property 'children' are incompatible.
    Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
      Type '(string | Element)[]' is not assignable to type 'Element[]'.
tests/cases/conformance/jsx/file.tsx(27,11): error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
  Types of property 'children' are incompatible.
    Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
      Type '(string | Element)[]' is not assignable to type 'Element[]'.


==== tests/cases/conformance/jsx/file.tsx (3 errors) ====
    import React = require('react');
    
    interface Prop {
        a: number,
        b: string,
        children: JSX.Element | JSX.Element[];
    }
    
    class Button extends React.Component<any, any> {
        render() {
            return (<div>My Button</div>)
        }
    }
    
    function AnotherButton(p: any) {
        return <h1>Just Another Button</h1>;
    }
    
    function Comp(p: Prop) {
        return <div>{p.b}</div>;
    }
    
    // Error: whitespaces matters
    let k1 = <Comp a={10} b="hi"><Button />  <AnotherButton /></Comp>;
              ~~~~
!!! error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:   Types of property 'children' are incompatible.
!!! error TS2322:     Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
!!! error TS2322:       Type '(string | Element)[]' is not assignable to type 'Element[]'.
!!! error TS2322:         Type 'string | Element' is not assignable to type 'Element'.
!!! error TS2322:           Type 'string' is not assignable to type 'Element'.
    let k2 = <Comp a={10} b="hi"><Button />
              ~~~~
!!! error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:   Types of property 'children' are incompatible.
!!! error TS2322:     Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
!!! error TS2322:       Type '(string | Element)[]' is not assignable to type 'Element[]'.
        <AnotherButton />  </Comp>;
    let k3 = <Comp a={10} b="hi">    <Button />
              ~~~~
!!! error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:   Types of property 'children' are incompatible.
!!! error TS2322:     Type '(string | Element)[]' is not assignable to type 'Element | Element[]'.
!!! error TS2322:       Type '(string | Element)[]' is not assignable to type 'Element[]'.
        <AnotherButton /></Comp>;