summaryrefslogtreecommitdiff
path: root/shared/utils/src/optional.ts
blob: 70588037c597c3a3fb7b38691fe91a4a61a981a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
export type Optional<T> = T | None;
export type None = null | undefined;

/**
 * Determine if an optional value is present.
 *
 * @param optional value
 * @return true if present, false otherwise
 */
export function isSome<T>(optional: Optional<T>): optional is T {
    return optional !== null && optional !== undefined;
}

/**
 * Determine if an optional value is not present.
 *
 * @param optional value
 * @return true if not present, false otherwise
 */
export function isNone<T>(optional: Optional<T>): optional is None {
    return optional === null || optional === undefined;
}