React TypeScript

TypeScript patterns specific to React components and hooks.

majiayu000 Updated 567 repo stars

File contents

React TypeScript

Priority: P1 (OPERATIONAL)

Type-safe React patterns.

Implementation Guidelines

  • Components: Return JSX.Element. Props interface over React.FC.
  • Children: Use ReactNode or PropsWithChildren<T>.
  • Events: React.ChangeEvent<HTMLInputElement>.
  • Hooks: useRef<HTMLDivElement>(null). useState<User | null>(null).
  • Props: Use ComponentProps<'button'> to mirror native els.
  • Generics: <T,>(props: ListProps<T>).
  • Polymorphism: as prop patterns.

Anti-Patterns

  • No any: Use unknown.
  • No React.FC: Implicit children is deprecated/bad practice.
  • No Function: Use (args: T) => void.

Code

// Modern Props
type ButtonProps = ComponentProps<'button'> & {
  variant?: 'primary' | 'secondary';
};

// Generic Component
type ListProps<T> = {
  items: T[];
  render: (item: T) => ReactNode;
};

function List<T>({ items, render }: ListProps<T>) {
  return <ul>{items.map(render)}</ul>;
}

// Hook Ref
const inputRef = useRef<HTMLInputElement>(null);

majiayu000/claude-skill-registry-data/tree/main/development/typescript-fierzone-agent-skills-standar commit a32542f733

Frequently asked questions

npx skillmds@latest add majiayu000/react-typescript-4