BoolUnit is a type of Unit that only accepts boolean
data type as its value. It ensures that at any point of time the value would always be boolean
.
It implements non-deprecated Object.prototype methods like toString
and redirects them to the stored boolean
value inside the Unit, so when you call BoolUnit.toString()
, it'll be executed on the Unit's value instead of the BoolUnit instance itself. Similarly, when you call other Object.prototype
methods they are called on the stored value instead of BoolUnit instance.
See API reference for more details.
| |
Default value |
|
Value data type |
|
BoolUnit can not be used as a drop-in replacement for primitive boolean
value, since BoolUnit is a non-primitive data structure, and the actual boolean
value is stored inside the Unit. See the below comparisons for more clarity.
// initializationlet bool = false; // a variable with prmitive boolean valueconst unit = new BoolUnit({initialValue: false});// initialValue is optional, BoolUnit has false as default valuebool === unit // falsebool === unit.value() // trueunit + '' // 'false'unit + 1 // 1, because false is converted to 0unit.dispatch(true);unit + 1 // 2, because true is converted to 1typeof bool === 'boolean' // truetypeof unit === 'object' // truetypeof unit.value() === 'boolean' // true// value assignmentbool = true;unit.dispatch(true);// value accessconsole.log(bool) // logs trueconsole.log(unit.value()) // logs true// orunit.subscribe(value => console.log(value)) // logs true, will log future values