vue-hooks-plus
Version:
Vue hooks library
21 lines (20 loc) • 798 B
TypeScript
import { Ref } from 'vue';
export interface IFuncUpdater<T> {
(previousState?: T): T;
}
export interface IFuncStorage {
(): Storage;
}
export interface Options<T> {
serializer?: (value: T) => string;
deserializer?: (value: string) => T;
}
export interface OptionsWithDefaultValue<T> extends Options<T> {
defaultValue: T | IFuncUpdater<T>;
}
export type StorageStateResult<T> = [Ref<T> | Ref<undefined>, (value?: T | IFuncUpdater<T>) => void];
export type StorageStateResultHasDefaultValue<T> = [
Ref<T> | Ref<undefined>,
(value?: T | IFuncUpdater<T> | undefined) => void
];
export declare function createUseStorageState(getStorage: () => Storage | undefined): <T>(key: Ref<string> | string, options?: OptionsWithDefaultValue<T>) => StorageStateResultHasDefaultValue<T>;