Prefer options objects for extensible APIs.
Section: Custom Hook Patterns
Custom hook with options object
tsx
tsx
function useInterval({ callback, delay, enabled = true }: {
callback: () => void;
delay: number;
enabled?: boolean;
}) {
useEffect(() => {
if (!enabled) return;
const id = setInterval(callback, delay);
return () => clearInterval(id);
}, [callback, delay, enabled]);
}Explanation
Options objects make hook signatures easier to extend without positional argument churn.
Learn the surrounding workflow
Compare similar commands or jump into common fixes when this command is part of a bigger troubleshooting path.
Related commands
Same sheet · prioritizing Custom Hook Patterns