Additional Props
ToiProps<Response> only describes ref and resolve. A component almost always needs more than that — a message to display, an item to confirm deletion of, and so on. Define those as part of the component's own props, then pass them as a second argument to toi:
toi infers both the response type and the extra props from Confirm's own props type — there's nothing to annotate on the call to toi itself.
Optional vs. required
Whether the second argument to toi (or to a function returned by toi.fn) can be omitted is inferred from the extra props themselves: if every extra prop is optional, the argument is too; if any is required, the argument is required.
Inline components
When passing a component defined inline, its props usually can't be inferred well enough on their own — annotate Response (and Props, if it needs anything beyond ToiProps) explicitly: