tests/cases/conformance/jsx/file.tsx(14,15): error TS2322: Type '{ a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
  Type '{ a: number; b: string; }' is not assignable to type 'Prop'.
    Property 'children' is missing in type '{ a: number; b: string; }'.
tests/cases/conformance/jsx/file.tsx(17,11): error TS2710: 'children' are specified twice. The attribute named 'children' will be overwritten.
tests/cases/conformance/jsx/file.tsx(31,11): error TS2322: Type '{ children: (Element | ((name: string) => Element))[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
  Type '{ children: (Element | ((name: string) => Element))[]; a: number; b: string; }' is not assignable to type 'Prop'.
    Types of property 'children' are incompatible.
      Type '(Element | ((name: string) => Element))[]' is not assignable to type 'string | Element'.
        Type '(Element | ((name: string) => Element))[]' is not assignable to type 'Element'.
          Property 'type' is missing in type '(Element | ((name: string) => Element))[]'.
tests/cases/conformance/jsx/file.tsx(37,11): error TS2322: Type '{ children: (number | Element)[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
  Type '{ children: (number | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
    Types of property 'children' are incompatible.
      Type '(number | Element)[]' is not assignable to type 'string | Element'.
        Type '(number | Element)[]' is not assignable to type 'Element'.
          Property 'type' is missing in type '(number | Element)[]'.
tests/cases/conformance/jsx/file.tsx(43,11): error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
  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 'string | Element'.
        Type '(string | Element)[]' is not assignable to type 'Element'.
          Property 'type' is missing in type '(string | Element)[]'.
tests/cases/conformance/jsx/file.tsx(49,11): error TS2322: Type '{ children: Element[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
  Type '{ children: Element[]; a: number; b: string; }' is not assignable to type 'Prop'.
    Types of property 'children' are incompatible.
      Type 'Element[]' is not assignable to type 'string | Element'.
        Type 'Element[]' is not assignable to type 'Element'.
          Property 'type' is missing in type 'Element[]'.


==== tests/cases/conformance/jsx/file.tsx (6 errors) ====
    import React = require('react');
    
    interface Prop {
        a: number,
        b: string,
        children: string | JSX.Element
    }
    
    function Comp(p: Prop) {
        return <div>{p.b}</div>;
    }
    
    // Error: missing children
    let k = <Comp a={10} b="hi" />;
                  ~~~~~~~~~~~~~
!!! error TS2322: Type '{ a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
!!! error TS2322:   Type '{ a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:     Property 'children' is missing in type '{ a: number; b: string; }'.
    
    let k0 =
        <Comp a={10} b="hi" children="Random" >
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS2710: 'children' are specified twice. The attribute named 'children' will be overwritten.
            hi hi hi!
        </Comp>;
    
    let o = {
         children:"Random"
    }
    let k1 =
        <Comp a={10} b="hi" {...o} >
            hi hi hi!
        </Comp>;
    
    // Error: incorrect type
    let k2 =
        <Comp a={10} b="hi">
              ~~~~~~~~~~~~~
!!! error TS2322: Type '{ children: (Element | ((name: string) => Element))[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
!!! error TS2322:   Type '{ children: (Element | ((name: string) => Element))[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:     Types of property 'children' are incompatible.
!!! error TS2322:       Type '(Element | ((name: string) => Element))[]' is not assignable to type 'string | Element'.
!!! error TS2322:         Type '(Element | ((name: string) => Element))[]' is not assignable to type 'Element'.
!!! error TS2322:           Property 'type' is missing in type '(Element | ((name: string) => Element))[]'.
            <div> My Div </div>
            {(name: string) => <div> My name {name} </div>}
        </Comp>;
    
    let k3 =
        <Comp a={10} b="hi">
              ~~~~~~~~~~~~~
!!! error TS2322: Type '{ children: (number | Element)[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
!!! error TS2322:   Type '{ children: (number | Element)[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:     Types of property 'children' are incompatible.
!!! error TS2322:       Type '(number | Element)[]' is not assignable to type 'string | Element'.
!!! error TS2322:         Type '(number | Element)[]' is not assignable to type 'Element'.
!!! error TS2322:           Property 'type' is missing in type '(number | Element)[]'.
            <div> My Div </div>
            {1000000}
        </Comp>;
    
    let k4 =
        <Comp a={10} b="hi" >
              ~~~~~~~~~~~~~
!!! error TS2322: Type '{ children: (string | Element)[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
!!! 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 'string | Element'.
!!! error TS2322:         Type '(string | Element)[]' is not assignable to type 'Element'.
!!! error TS2322:           Property 'type' is missing in type '(string | Element)[]'.
            <div> My Div </div>
            hi hi hi!
        </Comp>;
    
    let k5 =
        <Comp a={10} b="hi" >
              ~~~~~~~~~~~~~
!!! error TS2322: Type '{ children: Element[]; a: number; b: string; }' is not assignable to type 'IntrinsicAttributes & Prop'.
!!! error TS2322:   Type '{ children: Element[]; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:     Types of property 'children' are incompatible.
!!! error TS2322:       Type 'Element[]' is not assignable to type 'string | Element'.
!!! error TS2322:         Type 'Element[]' is not assignable to type 'Element'.
!!! error TS2322:           Property 'type' is missing in type 'Element[]'.
            <div> My Div </div>
            <div> My Div </div>
        </Comp>;