Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. // various examples of typescript stateless component declarations
  2.  
  3. import * as React from "react";
  4.  
  5. ////////////////
  6.  
  7. interface IVerboseStatelessComponentProps extends React.HTMLProps<JSX.Element> {
  8. myvar: string;
  9. onClick: () => void;
  10. }
  11.  
  12. export const VerboseStatelessComponent: React.StatelessComponent<IVerboseStatelessComponentProps> =
  13. (props: IVerboseStatelessComponentProps): JSX.Element => {
  14. return (
  15. <div onClick={props.onClick}>Hello, {props.myvar} </div>
  16. );
  17. };
  18.  
  19. ////////////////
  20.  
  21. export const SimpleStatelessComponent = ({myvar, onClick}: {myvar: string, onClick: () => void}) : JSX.Element => {
  22. return (
  23. <div onClick={onClick}>Hello, {myvar}</div>
  24. );
  25. };
  26.  
  27. ////////////////
  28.  
  29. interface IAnotherSimpleStatelessComponentProps extends React.HTMLProps<JSX.Element> {
  30. myvar: string;
  31. onClick?: MouseEventHandler<JSX.Element | HTMLElement>;
  32. }
  33.  
  34. export const AnotherSimpleStatelessComponent = ({myvar, onClick}: IAnotherSimpleStatelessComponentProps) : JSX.Element => {
  35. return (
  36. <div onClick={onClick}>Hello {myvar} </div>
  37. );
  38. };
  39.  
  40. ////////////////
  41.  
  42. export const TerseStatelessComponent = ({myvar, onClick}) => {
  43. return (
  44. <div onClick={onClick}>Hello, {myvar}</div>
  45. );
  46. };
  47.  
  48. ////////////////
  49.  
  50. interface IReallyVerboseStatelessComponentProps<T extends HTMLElement | JSX.Element> extends React.HTMLProps<JSX.Element> {
  51. myvar: string;
  52. onClick?: MouseEventHandler<JSX.Element | HTMLElement>;
  53. }
  54.  
  55. export const ReallyVerboseStatelessComponent: React.StatelessComponent<IReallyVerboseStatelessComponentProps<HTMLDivElement>> =
  56. (props: IReallyVerboseStatelessComponentProps<HTMLDivElement>): JSX.Element => {
  57. return (
  58. <div onClick={props.onClick}>Hello {props.myvar} </div>
  59. );
  60. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement