@mini-rx/signal-store
Version:
Signal Store for Angular
24 lines (23 loc) • 1 kB
TypeScript
import { Signal, WritableSignal } from '@angular/core';
import { SignalSelector } from './signal-selector';
type StateSelector<T, R> = (state: T) => R;
export declare function createSelectableSignal<StateType extends object>(state: Signal<StateType>): {
select: {
(): Signal<StateType>;
<R>(mapFn: SignalSelector<StateType, R>): Signal<R>;
<R_1>(mapFn: StateSelector<StateType, R_1>): Signal<R_1>;
<KeyType extends keyof StateType>(key: KeyType): Signal<StateType[KeyType]>;
};
get: () => StateType;
};
export declare function createSelectableWritableSignal<StateType extends object>(state: WritableSignal<StateType>): {
select: {
(): Signal<StateType>;
<R>(mapFn: SignalSelector<StateType, R>): Signal<R>;
<R_1>(mapFn: StateSelector<StateType, R_1>): Signal<R_1>;
<KeyType extends keyof StateType>(key: KeyType): Signal<StateType[KeyType]>;
};
get: () => StateType;
set: (v: StateType) => void;
};
export {};