GenericUnit
GenericUnit is a type of Unit that doesn't pertain to any specific data type, it's generic, as the name suggests. You can use it to store any serializable value data type that other Units accept. i.e.: boolean, number, string, simple object and array.
The advantage of using GenericUnit over other Units is that you can store and dispatch any type of value and the disadvantage is that you lose the specialized methods and features built into other Units for a specific data structure, for example, we can store an array value in a GenericUnit, but we cannot use methods like push or set to add items to the value without a manual dispatch. Also, we lose the assurance that the value would always be of a specific data type, i.e.: an array in case of ListUnit.
GenericUnit implements non-proto Object.prototype methods like toString to make working with the stored value a bit easier, when you call these methods they are called on the stored value instead of GenericUnit instance.
It also borrows some static methods from Object like values and entries, and implements them as instance members objectValues and objectEntries, respectively. These methods do not throw an error on undefined or null value, they would simply return an empty array instead.
See API reference for more details.
​
​
Default value
undefined
Supported data types
boolean, number, string, serializable object, array
1
// initialization
2
const unit = new GenericUnit({initialValue: ['🐠']}); // value is ['🐠']
3
​
4
typeof unit === 'object' // true
5
unit instanceof Array // false
6
unit.value() instanceof Array // true
7
​
8
// adding an item to the stored array value
9
unit.dispatch(arrValue => [...arrValue, '🐞'])
10
// this is inefficient compared to ListUnit.push, but it works
11
​
12
// dispatching a different type of value
13
unit.dispatch('not an array') // works
14
​
15
// dispatching a different type of value
16
unit.dispatch(true) // works
Copied!
Last modified 11mo ago
Copy link