@jingoz/zlight
Version:
一个轻量级的仿 zustand 的 React 状态管理库
14 lines (9 loc) • 494 B
text/typescript
import { TCreatorFn } from '../vanilla'
import { IStoreApi } from '../vanilla/store'
export type TState<S> = S extends { getState: () => infer T } ? T : never
export type TReadonlyStoreApi<S> = Pick<IStoreApi<S>, 'getState' | 'getInitialState' | 'subscribe'>
export type TCreator = <S>(initializer: TCreatorFn<S>) => TUseBoundStore<IStoreApi<S>>
export type TUseBoundStore<S extends TReadonlyStoreApi<unknown>> = {
(): TState<S>
<P>(selector: (state: TState<S>) => P): P
}