removeFromLocalStorage
Removes an item from localStorage by key.
1/**
2 * Removes an item from localStorage by key.
3 *
4 * @param key - The key of the item to remove.
5 */
6export function removeFromLocalStorage(key: string): void {
7 try {
8 localStorage.removeItem(key);
9 } catch (e) {
10 console.error('Failed to remove from localStorage:', e);
11 }
12}
Safe Deletion with Error Handling
Wraps
localStorage.removeItem
in a try-catch block to prevent crashes in restricted or failing environments.Minimal API Surface
Offers a clear, single-purpose utility that simplifies and standardizes storage removal across the codebase.
Improved Debugging Support
Logs descriptive errors when removal fails, which can be helpful in identifying issues with browser storage policies.
Tests | Examples
1beforeEach(() => {
2 localStorage.clear();
3 jest.clearAllMocks();
4});
5
6test('removeFromLocalStorage - removes existing key', () => {
7 localStorage.setItem('token', '123');
8 removeFromLocalStorage('token');
9 expect(localStorage.getItem('token')).toBeNull();
10});
11
12test('removeFromLocalStorage - handles non-existing key', () => {
13 expect(() => removeFromLocalStorage('nonexistent')).not.toThrow();
14});
15
16test('removeFromLocalStorage - logs error on failure', () => {
17 const spy = jest.spyOn(console, 'error').mockImplementation(() => {});
18 const originalRemoveItem = localStorage.removeItem;
19 // Simulate error
20 Object.defineProperty(localStorage, 'removeItem', {
21 value: () => { throw new Error('Failure'); }
22 });
23
24 removeFromLocalStorage('key');
25 expect(console.error).toHaveBeenCalled();
26
27 // Restore original
28 Object.defineProperty(localStorage, 'removeItem', {
29 value: originalRemoveItem
30 });
31});
Common Use Cases
Clearing User Sessions or Tokens
Remove authentication data from localStorage during logout or session expiration.
Resetting Application State
Clean up stored UI state or configuration before reinitializing components.
Managing Feature Flags or A/B Data
Remove outdated flags or experiment values after they're no longer needed.
Data Cleanup on Version Mismatch
Delete stale or incompatible cached values during application version updates.