Return readonly tuples for hooks that act like useState.
Section: TypeScript Custom Hooks
Typed tuple return
tsx
tsx
function useBoolean(initial = false): readonly [boolean, () => void] {
const [value, setValue] = useState(initial);
const toggle = () => setValue(v => !v);
return [value, toggle] as const;
}Explanation
`as const` preserves tuple semantics for callers.
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 TypeScript Custom Hooks