diff --git a/src/combine-events/index.ts b/src/combine-events/index.ts index 8cb20fd1..b5835b32 100644 --- a/src/combine-events/index.ts +++ b/src/combine-events/index.ts @@ -3,6 +3,7 @@ import { createStore, Effect, Event, + EventAsReturnType, guard, is, merge, @@ -36,7 +37,7 @@ type ReturnTarget = Target extends Store export function combineEvents

(config: { events: Events

; reset?: Unit; -}): Event

; +}): EventAsReturnType

; export function combineEvents< P extends Shape, diff --git a/test-typings/combine-events.ts b/test-typings/combine-events.ts index cae74fc9..85484762 100644 --- a/test-typings/combine-events.ts +++ b/test-typings/combine-events.ts @@ -6,6 +6,7 @@ import { createEvent, createStore, createEffect, + sample, } from 'effector'; import { combineEvents } from '../src/combine-events'; @@ -260,3 +261,19 @@ import { combineEvents } from '../src/combine-events'; expectType>(effect); } + +// Can be used in sample +{ + const foo = createEvent(); + const bar = createEvent(); + + sample({ + clock: combineEvents({ + events: [foo, bar], + }), + fn: ([a, b]) => { + expectType(a); + expectType(b); + }, + }); +}