mirror of
https://github.com/sindresorhus/type-fest.git
synced 2025-12-08 19:25:05 +00:00
25 lines
498 B
TypeScript
25 lines
498 B
TypeScript
import type {IsNever} from './is-never';
|
|
|
|
/**
|
|
An if-else-like type that resolves depending on whether the given type is `never`.
|
|
|
|
@see {@link IsNever}
|
|
|
|
@example
|
|
```
|
|
import type {IfNever} from 'type-fest';
|
|
|
|
type ShouldBeTrue = IfNever<never>;
|
|
//=> true
|
|
|
|
type ShouldBeBar = IfNever<'not never', 'foo', 'bar'>;
|
|
//=> 'bar'
|
|
```
|
|
|
|
@category Type Guard
|
|
@category Utilities
|
|
*/
|
|
export type IfNever<T, TypeIfNever = true, TypeIfNotNever = false> = (
|
|
IsNever<T> extends true ? TypeIfNever : TypeIfNotNever
|
|
);
|