@minisss/localstorage
Version:
A Window localStorage Manager Lib
93 lines (87 loc) • 2.5 kB
TypeScript
/** 本地存储数据结构 */
interface IMSLocalStorageStore {
/** 存储值 */
data: any;
/** 有效日期时长(ms) */
maxAge?: number;
}
/** 配置 */
interface IMSLocalStorageConfig {
/**
* 失效日期(Date)
* @default null
*/
expires?: Date;
/**
* 最大存活时间(秒)
* @description 当 maxAge 大于 0 时,expires 值会被忽略
* @default 0
*/
maxAge?: number;
/**
* 自定义前缀
* @description 建议使用 create 方法创建实例时 传入自定义前缀(避免单独使用-不方便后期维护)
* @default ""
*/
prefix?: string;
}
/** 类型实例 */
interface IMSLocalStorageInstance<O> {
/** 当前包版本信息 */
readonly VERSION: string;
/** 返回 Storage 数据项数量 */
readonly length: number;
/** 判断当前环境是否支持 localStorage */
readonly isSupport: boolean;
/**
* 获取指定 index key 值
* @param {number} idx
* @returns {any} any
*/
key(idx: number): any;
/**
* 获取指定 key 值
* @param {K} key 键
* @param {IMSLocalStorageConfig} config 配置
* @returns {O[K]} 返回指定 key 的 val
*/
get<K extends keyof O>(key: K, config?: IMSLocalStorageConfig): O[K];
/**
* 设置指定 key 的 val
* @param {K} key 键
* @param {V} val 值
* @param {IMSLocalStorageConfig} config 配置
* @returns undefined
*/
set<K extends keyof O, V extends O[K]>(key: K, val: V, config?: IMSLocalStorageConfig): boolean;
/**
* 删除指定 key
* @param {K} key 键
* @param {IMSLocalStorageConfig} config 配置
* @requires undefined
*/
del<K extends keyof O>(key: K, config?: IMSLocalStorageConfig): boolean;
/**
* 清除所有键名
* @requires undefined
*/
clear(): void;
/**
* 判断指定 key 是否存在
* @param {K} key 键
* @param {IMSLocalStorageConfig} config 配置
* @returns {boolean} boolean
*/
has<K extends keyof O>(key: K, config?: IMSLocalStorageConfig): boolean;
}
/** 包静态属性及方法 */
interface IMSLocalStorageStatic<O> extends IMSLocalStorageInstance<O> {
/**
* 创建一个 MSLocalStorage 实例
* @example const MLS = MSLocalStorage.create({ prefix: "custom_prefix_" });
* @returns {IMSLocalStorageInstance} MSLocalStorage Instance
*/
create<OO extends O>(config?: Partial<IMSLocalStorageConfig>): IMSLocalStorageInstance<OO>;
}
/** @minisss/localstorage 本地对象 TS 类型提示定义 */
interface IMSLocalStorageData {}