@augment-vir/assert
Version:
A collection of assertions for test and production code alike.
20 lines (19 loc) • 910 B
TypeScript
import { type IsEqual } from 'type-fest';
/**
* A helper type that resolves to the given `Yes` type parameter if `Actual` === `Expected`.
* Otherwise it resolves to the given `No` type parameter.
*
* @category Assert : Util
* @category Package : @augment-vir/assert
* @package [`@augment-vir/assert`](https://www.npmjs.com/package/@augment-vir/assert)
*/
export type IfEquals<Actual, Expected, Yes = unknown, No = never> = IsEqual<Actual, Expected> extends true ? Yes : No;
/**
* A helper type that resolves to the given `Yes` type parameter if `Actual` extends `Expected`.
* Otherwise it resolves to the given `No` type parameter.
*
* @category Assert : Util
* @category Package : @augment-vir/assert
* @package [`@augment-vir/assert`](https://www.npmjs.com/package/@augment-vir/assert)
*/
export type IfExtends<Actual, Expected, Yes = unknown, No = never> = Actual extends Expected ? Yes : No;