TypeScript/tests/cases/conformance/jsx/tsxUnionTypeComponent1.tsx

29 lines
650 B
TypeScript
Raw Normal View History

2016-05-19 17:22:53 +02:00
// @filename: file.tsx
// @jsx: react
// @noLib: true
// @skipLibCheck: true
2016-05-19 17:22:53 +02:00
// @libFiles: react.d.ts,lib.d.ts
import React = require('react');
interface ComponentProps {
AnyComponent: React.StatelessComponent<any> | React.ComponentClass<any>;
}
class MyComponent extends React.Component<ComponentProps, {}> {
render() {
const { AnyComponent } = this.props;
2016-05-19 20:19:35 +02:00
return (<AnyComponent />);
2016-05-19 17:22:53 +02:00
}
}
2016-05-19 20:19:35 +02:00
// Stateless Component As Props
2016-05-19 17:22:53 +02:00
<MyComponent AnyComponent={() => <button>test</button>}/>
2016-05-19 20:19:35 +02:00
// Component Class as Props
2016-05-19 17:22:53 +02:00
class MyButtonComponent extends React.Component<{},{}> {
}
<MyComponent AnyComponent={MyButtonComponent} />