TypeScript - JSX & React Basics
Typing props
type ButtonProps = { onClick?: () => void; children: React.ReactNode };
function Button({ onClick, children }: ButtonProps) {
return ;
}
State and events
import { useState } from 'react';
function Counter() {
const [n, setN] = useState(0);
return ;
}
Generic components
type ListProps = { items: T[]; render: (t: T) => React.ReactNode };
function List({ items, render }: ListProps) {
return {items.map((i, idx) => - {render(i)}
)}
;
}
Ensure tsconfig has "jsx": "react-jsx"
and React types installed.