Skip to content

Instantly share code, notes, and snippets.

@iulia-codes
Forked from mikebridge/SimpleStateless.tsx
Created September 21, 2018 14:04
Show Gist options
  • Save iulia-codes/e7349e16314b03ff199b02df7b16c8d2 to your computer and use it in GitHub Desktop.
Save iulia-codes/e7349e16314b03ff199b02df7b16c8d2 to your computer and use it in GitHub Desktop.
React TypeScript Stateless Component Examples
// various examples of typescript stateless component declarations
import * as React from "react";
import {MouseEventHandler} from "react";
////////////////
interface IVerboseStatelessComponentProps extends React.HTMLProps<JSX.Element> {
myvar: string;
onClick: () => void;
}
export const VerboseStatelessComponent: React.StatelessComponent<IVerboseStatelessComponentProps> =
(props: IVerboseStatelessComponentProps): JSX.Element => {
return (
<div onClick={props.onClick}>Hello, {props.myvar} </div>
);
};
////////////////
export const SimpleStatelessComponent = ({myvar, onClick}: {myvar: string, onClick: () => void}) : JSX.Element => {
return (
<div onClick={onClick}>Hello, {myvar}</div>
);
};
////////////////
interface IAnotherSimpleStatelessComponentProps extends React.HTMLProps<JSX.Element> {
myvar: string;
onClick?: React.MouseEventHandler<JSX.Element | HTMLElement>;
}
export const AnotherSimpleStatelessComponent = ({myvar, onClick}: IAnotherSimpleStatelessComponentProps) : JSX.Element => {
return (
<div onClick={onClick}>Hello {myvar} </div>
);
};
////////////////
export const TerseStatelessComponent = ({myvar, onClick}) => {
return (
<div onClick={onClick}>Hello, {myvar}</div>
);
};
////////////////
interface IReallyVerboseStatelessComponentProps<T extends HTMLElement | JSX.Element> extends React.HTMLProps<JSX.Element> {
myvar: string;
onClick?: MouseEventHandler<JSX.Element | HTMLElement>;
}
export const ReallyVerboseStatelessComponent: React.StatelessComponent<IReallyVerboseStatelessComponentProps<HTMLDivElement>> =
(props: IReallyVerboseStatelessComponentProps<HTMLDivElement>): JSX.Element => {
return (
<div onClick={props.onClick}>Hello {props.myvar} </div>
);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment