tests/cases/conformance/jsx/file.tsx(12,5): error TS2416: Property 'render' in type 'FetchUser' is not assignable to the same property in base type 'Component<IFetchUserProps, any>'.
  Type '() => JSX.Element' is not assignable to type '() => JSX.Element'. Two different types with this name exist, but they are unrelated.
    The 'this' types of each signature are incompatible.
      Type 'Component<P, S>' is not assignable to type 'FetchUser'.
        Types of property 'render' are incompatible.
          Type '() => JSX.Element' is not assignable to type '() => JSX.Element'. Two different types with this name exist, but they are unrelated.
            The 'this' types of each signature are incompatible.
              Type 'FetchUser' is not assignable to type 'Component<P, S>'.
                Types of property 'setState' are incompatible.
                  Type '{ (f: (prevState: any, props: IFetchUserProps) => any, callback?: () => any): void; (state: any, callback?: () => any): void; }' is not assignable to type '{ (f: (prevState: S, props: P) => S, callback?: () => any): void; (state: S, callback?: () => any): void; }'.
                    Types of parameters 'f' and 'f' are incompatible.
                      Types of parameters 'props' and 'props' are incompatible.
                        Type 'IFetchUserProps' is not assignable to type 'P'.
                          'P' could be instantiated with an arbitrary type which could be unrelated to 'IFetchUserProps'.
tests/cases/conformance/jsx/file.tsx(24,28): error TS2551: Property 'NAme' does not exist on type 'IUser'. Did you mean 'Name'?
tests/cases/conformance/jsx/file.tsx(36,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'.
  Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement<any>': type, props
tests/cases/conformance/jsx/file.tsx(39,15): error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'.
  Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement<any>': type, props


==== tests/cases/conformance/jsx/file.tsx (4 errors) ====
    import React = require('react');
    
    interface IUser {
        Name: string;
    }
    
    interface IFetchUserProps {
        children: (user: IUser) => JSX.Element;
    }
    
    class FetchUser extends React.Component<IFetchUserProps, any> {
        render() {
        ~~~~~~
!!! error TS2416: Property 'render' in type 'FetchUser' is not assignable to the same property in base type 'Component<IFetchUserProps, any>'.
!!! error TS2416:   Type '() => JSX.Element' is not assignable to type '() => JSX.Element'. Two different types with this name exist, but they are unrelated.
!!! error TS2416:     The 'this' types of each signature are incompatible.
!!! error TS2416:       Type 'Component<P, S>' is not assignable to type 'FetchUser'.
!!! error TS2416:         Types of property 'render' are incompatible.
!!! error TS2416:           Type '() => JSX.Element' is not assignable to type '() => JSX.Element'. Two different types with this name exist, but they are unrelated.
!!! error TS2416:             The 'this' types of each signature are incompatible.
!!! error TS2416:               Type 'FetchUser' is not assignable to type 'Component<P, S>'.
!!! error TS2416:                 Types of property 'setState' are incompatible.
!!! error TS2416:                   Type '{ (f: (prevState: any, props: IFetchUserProps) => any, callback?: () => any): void; (state: any, callback?: () => any): void; }' is not assignable to type '{ (f: (prevState: S, props: P) => S, callback?: () => any): void; (state: S, callback?: () => any): void; }'.
!!! error TS2416:                     Types of parameters 'f' and 'f' are incompatible.
!!! error TS2416:                       Types of parameters 'props' and 'props' are incompatible.
!!! error TS2416:                         Type 'IFetchUserProps' is not assignable to type 'P'.
!!! error TS2416:                           'P' could be instantiated with an arbitrary type which could be unrelated to 'IFetchUserProps'.
            return this.state
                ? this.props.children(this.state.result)
                : null;
        }
    }
    
    // Error
    function UserName() {
        return (
            <FetchUser>
                { user => (
                    <h1>{ user.NAme }</h1>
                               ~~~~
!!! error TS2551: Property 'NAme' does not exist on type 'IUser'. Did you mean 'Name'?
!!! related TS2728 tests/cases/conformance/jsx/file.tsx:4:5: 'Name' is declared here.
                ) }
            </FetchUser>
        );
    }
    
    function UserName1() {
        return (
            <FetchUser>
    
    
                
                { user => (
                  ~~~~~~~~~
                    <h1>{ user.Name }</h1>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                ) }
    ~~~~~~~~~~~~~
!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'.
!!! error TS2322:   Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement<any>': type, props
!!! related TS6212 tests/cases/conformance/jsx/file.tsx:36:15: Did you mean to call this expression?
                { user => (
                  ~~~~~~~~~
                    <h1>{ user.Name }</h1>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                ) }
    ~~~~~~~~~~~~~
!!! error TS2322: Type '(user: IUser) => Element' is not assignable to type 'boolean | any[] | ReactChild'.
!!! error TS2322:   Type '(user: IUser) => Element' is missing the following properties from type 'ReactElement<any>': type, props
!!! related TS6212 tests/cases/conformance/jsx/file.tsx:39:15: Did you mean to call this expression?
            </FetchUser>
        );
    }