is
A utility function that Zedux uses internally to identify class instances.
Zedux uses this instead of instanceof
. Zedux can't use JavaScript's instanceof
because Zedux is designed to work across windows, with other instances of itself. instanceof
can't recognize classes that are instances of a different class reference, even if they're the same "class" in Zedux's eyes.
is()
works by checking if a value's .$$typeof
property matches a static property with the same name on the given class. These $$typeof
properties are JavaScript Symbols, which are properly shared across windows.
Example
import { createStore, is, Store } from '@zedux/react'
const store = createStore()
is(store, Store) // true
class MyCustomStore extends Store {}
const customStore = new MyCustomStore()
is(customStore, Store) // true
Accepted Classes
Here's the full list of Zedux classes that can be checked with is()
:
Any class that extends these classes works too.
Definition
is = (value, classToCheck) => boolean
The value that may or may not be an instance of classToCheck
. Can be anything.
A class that contains a public static $$typeof
symbol.
True if value
is an instance of classToCheck
.