react-typescript-patterns

Solid

Use when writing React + TypeScript components - functional components, explicit typed props, derived state over effects, and no any/unsafe casts

AI & Automation 91 stars 13 forks Updated today Apache-2.0

Install

View on GitHub

Quality Score: 87/100

Stars 20%
65
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
96
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# React + TypeScript Patterns ## Overview The compiler is your first test. The recurring defects are `any`/`as` casts that hide type errors, `useEffect` used where a derived value or event handler belongs, and state that should have been derived. **Core principle:** Type at the source, derive over effect, functional components only. ## Rules - **Functional components with hooks** — no class components. - **Explicit, exported props interfaces** next to the component. Never `any`; avoid `as` casts — fix the type at the source. - **Named exports** for pages/components; colocate feature code under `web/src`. - **Derive state** where possible; `useState` for genuinely local state; lift to a hook only when multiple components need it. - **Effects are a last resort.** Prefer event handlers and derived values. Every `useEffect` has a correct dependency array and a cleanup when it subscribes/allocates. - **Type all API responses** with interfaces matching the backend JSON — the compiler is your contract test. ## Worked Example ```tsx // ❌ effect + state to compute something derivable; `any` hides the shape const [fullName, setFullName] = useState(""); useEffect(() => { setFullName(user.first + " " + user.last); }, [user]); // ✅ derived value, typed interface Props { user: User } export function UserBadge({ user }: Props) { const fullName = `${user.first} ${user.last}`; // derived, no state, no effect return <span>{fullName}</span>; } ``` The derived version has no effec...

Details

Author
makifbaysal
Repository
makifbaysal/tasktrooper
Created
1 weeks ago
Last Updated
today
Language
Go
License
Apache-2.0

Similar Skills

Semantically similar based on skill content — not just same category