UNPKG

1.04 kBTypeScriptView Raw
1/**
2 * `invariant` is used to [assert](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions) that the `condition` is [truthy](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy).
3 *
4 * 💥 `invariant` will `throw` an `Error` if the `condition` is [falsey](https://github.com/getify/You-Dont-Know-JS/blob/bdbe570600d4e1107d0b131787903ca1c9ec8140/up%20%26%20going/ch2.md#truthy--falsy)
5 *
6 * 🤏 `message`s are not displayed in production environments to help keep bundles small
7 *
8 * @example
9 *
10 * ```ts
11 * const value: Person | null = { name: 'Alex' };
12 * invariant(value, 'Expected value to be a person');
13 * // type of `value`` has been narrowed to `Person`
14 * ```
15 */
16export default function invariant(condition: any,
17/**
18 * Can provide a string, or a function that returns a string for cases where
19 * the message takes a fair amount of effort to compute
20 */
21message?: string | (() => string)): asserts condition;