Saltar al contenido principal
Version: 0.1.0

useLocalStorage

Proporciona acceso completamente tipado a localStorage con serialización y deserialización JSON automática.

Firma

function useLocalStorage<Type extends Record<string, any>>(): {
getItem: <Key extends keyof Type>(key: Key) => Type[Key] | null;
setItem: (key: keyof Type, value: Type[keyof Type]) => void;
removeItem: (key: keyof Type) => void;
hasItem: (key: keyof Type) => boolean;
clear: () => void;
}

Parámetro de tipo

Pasá tu esquema de almacenamiento como genérico para obtener autocompletado y tipado completo:

interface MiStorage {
tema: "dark" | "light";
usuarioId: number;
preferencias: { idioma: string; notificaciones: boolean };
}

const storage = useLocalStorage<MiStorage>();
storage.setItem("tema", "dark"); // ✅
storage.setItem("tema", "azul"); // ❌ Error de tipos

Valor de retorno

MétodoDescripción
getItem(key)Devuelve el valor tipado o null si no está definido
setItem(key, value)Serializa y almacena el valor
removeItem(key)Elimina la clave del storage
hasItem(key)Devuelve true si la clave existe
clear()Elimina todas las claves del storage

Manejo de errores

El hook lanza un error UnsupportedClient si window.localStorage no está disponible (p.ej., en contextos de SSR o cuando el storage está bloqueado por el navegador).

Ejemplo interactivo

Loading playground...