Skip to main content

Possibly Read As Nullable

This page discusses how to use PossiblyReadAsNullable and AllNodesPossiblyReadAsNullable.

PossiblyReadAsNullable

This section discusses how to use PossiblyReadAsNullable

info

PossiblyReadAsNullable unions nodes read type with null and undefined.

Type Checks

import {
MetaTypeCreator,
ServerTimestamp,
NumericKeyRecord,
PossiblyReadAsNullable,
createRef,
getDatabase,
get,
PushAble,
PushAbleOnly,
} from 'firesagejs'

export type Example = MetaTypeCreator<{
a: number | PossiblyReadAsNullable
b: number
}>
const exampleRef = createRef<Example>(getDatabase())

get(exampleRef()).then(dataSnapshot => {
// type of data is { a: number | null | undefined; b: number} | null
// PossiblyReadAsNullable union node read type with null and undefined
const data = dataSnapshot.val()
})

// you can union `PossiblyReadAsNullable` to any node
export type Example2 = MetaTypeCreator<
| {
b:
| {
c: boolean | PossiblyReadAsNullable
d:
| {
e: ServerTimestamp | PossiblyReadAsNullable
}
| PossiblyReadAsNullable
}
| PossiblyReadAsNullable
f:
| Record<string, 'a' | 'b' | 'c' | PossiblyReadAsNullable>
| PossiblyReadAsNullable
i:
| NumericKeyRecord<boolean | PossiblyReadAsNullable>
| PossiblyReadAsNullable
j:
| PushAble<1 | 2 | 3 | 4 | PossiblyReadAsNullable>
| PossiblyReadAsNullable
k:
| PushAbleOnly<
| { l: ServerTimestamp | PossiblyReadAsNullable }
| PossiblyReadAsNullable
>
| PossiblyReadAsNullable
}
| PossiblyReadAsNullable
>
how to use PossiblyReadAsNullable

AllNodesPossiblyReadAsNullable

This section discusses how to use AllNodesPossiblyReadAsNullable.

Type Checks

info

AllNodesPossiblyReadAsNullable is not a type but a setting, it unions null and undefined to all nodes read type.

import {
MetaTypeCreator,
ServerTimestamp,
NumericKeyRecord,
createRef,
getDatabase,
get,
PushAble,
PushAbleOnly,
} from 'firesagejs'

export type Example = MetaTypeCreator<
{
b: {
c: boolean
d: {
e: ServerTimestamp
}
}
f: Record<string, 'a' | 'b' | 'c'>
i: NumericKeyRecord<boolean>
j: PushAble<1 | 2 | 3 | 4>
k: PushAbleOnly<{ l: ServerTimestamp }>
},
{ AllNodesPossiblyReadAsNullable: true }
>

const exampleRef = createRef<Example>(getDatabase())

get(exampleRef()).then(dataSnapshot => {
// AllNodesPossiblyReadAsNullable union all nodes read type with null and undefined
const data = dataSnapshot.val()
})
how to use AllNodesPossiblyReadAsNullable