mirror of
https://github.com/swc-project/swc.git
synced 2024-11-24 10:12:42 +03:00
45 lines
787 B
TypeScript
45 lines
787 B
TypeScript
// @filename: file.tsx
|
|
// @jsx: preserve
|
|
// @noLib: true
|
|
// @skipLibCheck: true
|
|
// @libFiles: react.d.ts,lib.d.ts
|
|
|
|
import React = require('react');
|
|
|
|
interface IUser {
|
|
Name: string;
|
|
}
|
|
|
|
interface IFetchUserProps {
|
|
children: (user: IUser) => JSX.Element;
|
|
}
|
|
|
|
class FetchUser extends React.Component<IFetchUserProps, any> {
|
|
render() {
|
|
return this.state
|
|
? this.props.children(this.state.result)
|
|
: null;
|
|
}
|
|
}
|
|
|
|
// Ok
|
|
function UserName0() {
|
|
return (
|
|
<FetchUser>
|
|
{ user => (
|
|
<h1>{ user.Name }</h1>
|
|
) }
|
|
</FetchUser>
|
|
);
|
|
}
|
|
|
|
function UserName1() {
|
|
return (
|
|
<FetchUser>
|
|
|
|
{ user => (
|
|
<h1>{ user.Name }</h1>
|
|
) }
|
|
</FetchUser>
|
|
);
|
|
} |