DefinitelyTyped/types/invariant/invariant-tests.ts
Thai Pangsakulyanont 0640cab7d7 [@types/invariant] Make invariant(false) return never (#36460)
This allows patterns such as this when strict null checks are on:

    let instance: Thing | undefined;

    function getInstance(): Thing {
        return instance || invariant(false, "`instance` not instantiated");
    }
2019-07-01 13:00:52 -07:00

25 lines
736 B
TypeScript

import invariant = require("invariant");
// will throw in dev mode (process.env.NODE_ENV !== 'production')
invariant(true);
// will pass in production (process.env.NODE_ENV === 'production')
invariant(true);
// will pass in dev mode and production mode
invariant(true, 'Error, error, read all about it');
// will throw in dev mode, and production mode
invariant(false, 'Some other error');
// will throw in dev mode, and production mode
invariant(0, 'Some other error');
// will throw in dev mode, and production mode
invariant('', 'Some other error');
// handles extra variables
invariant(true, 'Error, error, read all about it', 37, {}, 'hello');
// $ExpectType {}
({} as {} | undefined) || invariant(false, 'a is undefined');