# Storage class

The type used by the Window.localStorage and Window.sessionStorage properties. Storage is implemented as a Map<String, String>.

To store and get values, use Dart's built-in map syntax:

    window.localStorage['key1'] = 'val1';
    window.localStorage['key2'] = 'val2';
    window.localStorage['key3'] = 'val3';
    assert(window.localStorage['key3'] == 'val3');

You can use Map APIs such as containsValue(), clear(), and length:

    assert(window.localStorage.containsValue('does not exist') == false);
    window.localStorage.clear();
    assert(window.localStorage.length == 0);

For more examples of using this API, see localstorage_test.dart. For details on using the Map API, see the Maps section of the library tour.

Mixes-in
  - MapMixin<String, String>
Annotations
  - @Unstable()
  - @Native("Storage")

## Properties

isEmpty → bool
  read-only
isNotEmpty → bool
  read-only
keys → Iterable<String>
  read-only
length → int
  read-only
values → Iterable<String>
  read-only
entries → Iterable<MapEntry<String, String>>
  The map entries of this.
  read-only, inherited
hashCode → int
  The hash code for this object. [...]
  read-only, inherited
runtimeType → Type
  A representation of the runtime type of the object.
  read-only, inherited

## Methods

addAll(Map<String, String> other) → void
clear() → void
containsKey(Object key) → bool
containsValue(Object value) → bool
forEach(void f(String key, String value)) → void
putIfAbsent(String key, String ifAbsent()) → String
remove(Object key) → String
addEntries(Iterable<MapEntry<String, String>> newEntries) → void
  Adds all key/value pairs of `newEntries` to this map. [...]
  inherited
cast<RK, RV>() → Map<RK, RV>
  Provides a view of this map as having `RK` keys and `RV` instances, if necessary. [...]
  inherited
map<K2, V2>(MapEntry<K2, V2> transform(K key, V value)) → Map<K2, V2>
  Returns a new map where all entries of this map are transformed by the given `f` function.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a non-existent method or property is accessed. [...]
  inherited
removeWhere(bool test(K key, V value)) → void
  Removes all entries of this map that satisfy the given `predicate`.
  inherited
toString() → String
  Returns a string representation of this object.
  inherited
update(String key, String update(V value), { String ifAbsent() }) → String
  Updates the value for the provided `key`. [...]
  inherited
updateAll(String update(K key, V value)) → void
  Updates all values. [...]
  inherited

## Operators

operator [](Object key) → String
operator []=(String key, String value) → void
operator ==(dynamic other) → bool
  The equality operator. [...]
  inherited