NullableUndefineableJSAnyExtension extension

JS undefined and JS null are internalized differently based on the backends. In the JS backends, Dart null can actually be JS undefined or JS null. In dart2wasm, that's not the case: there's only one Wasm value null can be. Therefore, when we get back JS null or JS undefined, we internalize both as Dart null in dart2wasm, and when we pass Dart null to an interop API, we pass JS null. In the JS backends, Dart null retains its original value when passed back to an interop API. Be wary of writing code where this distinction between null and undefined matters.



isDefinedAndNotNull bool
no setter
isNull bool
Determine if this value corresponds to JS null.
no setter
isUndefined bool
Determine if this value corresponds to JS undefined.
no setter
isUndefinedOrNull bool
no setter


dartify() Object?
Effectively the inverse of jsify, dartify Takes a JavaScript object, and converts it to a Dart based object. Only JS primitives, arrays, or 'map' like JS objects are supported.
typeofEquals(String typeString) bool