BoolUnit
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. | |
Default value | false |
Value data type | boolean |
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.// initialization
let bool = false; // a variable with prmitive boolean value
const unit = new BoolUnit({initialValue: false});
// initialValue is optional, BoolUnit has false as default value
bool === unit // false
bool === unit.value() // true
unit + '' // 'false'
unit + 1 // 1, because false is converted to 0
unit.dispatch(true);
unit + 1 // 2, because true is converted to 1
typeof bool === 'boolean' // true
typeof unit === 'object' // true
typeof unit.value() === 'boolean' // true
// value assignment
bool = true;
unit.dispatch(true);
// value access
console.log(bool) // logs true
console.log(unit.value()) // logs true
// or
unit.subscribe(value => console.log(value)) // logs true, will log future values
Last modified 2yr ago