Saltar al contenido principal
Version: Próxima (sin publicar)

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...