Skip to content

Instantly share code, notes, and snippets.

@mikebridge
Last active September 21, 2018 14:04
Show Gist options
  • Save mikebridge/7493d2d39e9f4601640cdf475d1fdb41 to your computer and use it in GitHub Desktop.
Save mikebridge/7493d2d39e9f4601640cdf475d1fdb41 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>
);
};
@iulia-codes
Copy link

Hi Mike,

I really this example. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment