追加の Props
ToiProps<Response> が持っているプロパティは ref と resolve だけです。しかし実際のコンポーネントでは、表示するメッセージや削除対象のアイテムなど、それ以外の Props が必要になることがほとんどです。これらはコンポーネント自身の Props の一部として定義し、toi の第 2 引数を経由して渡します。
toi は Confirm 自身の Props の型から、レスポンスの型と追加の Props の両方を推論します。toi の呼び出し自体に型を注釈する必要はありません。
オプションか必須か
toi(または toi.fn が返す関数)の第 2 引数を省略できるかどうかは、追加の Props 自体から推論されます。すべての追加 Props がオプションであれば引数も省略可能に、いずれかが必須であれば引数も必須になります。
インラインコンポーネント
インラインで定義したコンポーネントを渡す場合、その Props をそのままでは推論できないため、Response(と、ToiProps 以外に必要なものがあれば Props も)を明示的に注釈してください。