gameplate - v2.2.0
    Preparing search index...

    Type Alias Action<S, Args>

    Action: (state: DeepReadonly<S>, ...args: Args) => S

    An action is a pure function: (state, ...args) => newState.

    The state argument is DeepReadonly<S> so the compiler stops you from mutating in place. Return a new object — spread, structured-clone, Immer, whatever you prefer.

    Type Parameters

    • S
    • Args extends readonly unknown[] = readonly unknown[]

    Type Declaration

    const moveBy: Action<{ x: number; y: number }, [dx: number, dy: number]> =
    (s, dx, dy) => ({ x: s.x + dx, y: s.y + dy });