@expo/nullthrows
v1.0.0
Published
An idiomatic way to enforce values not to be null nor undefined, with first-class support for TypeScript
Downloads
8,558
Readme
nullthrows
An idiomatic way to enforce values not to be null
or undefined
, with first-class support for TypeScript. Very lightweight with no dependencies.
Installation and usage
npm install @expo/nullthrows
import process from 'node:process';
import nullthrows from '@expo/nullthrows';
// nodeEnv is guaranteed to be a string. If the environment variable is
// undefined, nullthrows throws a TypeError.
const nodeEnv = nullthrows(process.env.NODE_ENV);
// You can optionally provide a custom error message
const nodeEnv2 = nullthrows(process.env.NODE_ENV, `NODE_ENV must be defined`);
API
function nullthrows<T>(value: T | null | undefined, message?: string): NonNullable<T>
Parameters
value
: the value to enforce not to benull
orundefined
message
: an optional error message to use in the thrownTypeError
if the given value isnull
orundefined
Type parameters
T
: the static type ofvalue
Return value
Returns value
if it is neither null
nor undefined
.
Throws
Throws a TypeError
if value
is null
or undefined
.
History
This package is a spiritual successor of nullthrows
. The motivation for a new package was primarily to support using TypeScript with ES modules since the type declarations included with nullthrows
produce type errors.