tests/cases/conformance/jsx/file.tsx(20,10): error TS2322: 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(24,6): error TS2322: 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 'Button'.
      Property 'render' is missing in type 'Element'.
tests/cases/conformance/jsx/file.tsx(28,6): error TS2322: Type '{ children: typeof Button; a: number; b: string; }' is not assignable to type 'Prop'.
  Types of property 'children' are incompatible.
    Type 'typeof Button' is not assignable to type 'Button'.
      Property 'render' is missing in type 'typeof Button'.


==== tests/cases/conformance/jsx/file.tsx (3 errors) ====
    import React = require('react');
    
    interface Prop {
        a: number,
        b: string,
        children: Button;
    }
    
    class Button extends React.Component<any, any> {
        render() {
            return (<div>My Button</div>)
        }
    }
    
    function Comp(p: Prop) {
        return <div>{p.b}</div>;
    }
    
    // Error: no children specified
    let k = <Comp a={10} b="hi" />;
             ~~~~
!!! 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; }'.
    
    // Error: JSX.element is not the same as JSX.ElementClass
    let k1 =
        <Comp a={10} b="hi">
         ~~~~
!!! 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 'Button'.
!!! error TS2322:       Property 'render' is missing in type 'Element'.
            <Button />
        </Comp>;
    let k2 =
        <Comp a={10} b="hi">
         ~~~~
!!! error TS2322: Type '{ children: typeof Button; a: number; b: string; }' is not assignable to type 'Prop'.
!!! error TS2322:   Types of property 'children' are incompatible.
!!! error TS2322:     Type 'typeof Button' is not assignable to type 'Button'.
!!! error TS2322:       Property 'render' is missing in type 'typeof Button'.
            {Button}
        </Comp>;