typedash
Version:
modern, type-safe collection of utility functions
19 lines (17 loc) • 788 B
TypeScript
/**
* Creates a type guard that checks if the given type is assignable to the given type.
* @param values The values to check against.
* @template {TInput} The type to check against, `unknown` by default. Pass in if you want to have a narrowed type for the type predicate (e.g. `string`).
* @returns A type guard that checks if the given type is assignable to the given type.
* @example
* ```ts
* const isValidValue = createTypeGuard(['foo', 'bar']);
*
* const value: unknown = '...';
* if (isValidValue(value)) {
* // ✅ value is of type `'foo' | 'bar'`
* }
* ```
*/
declare function createTypeGuard<const TKnownValue, TInput extends TKnownValue | unknown = unknown>(values: Iterable<TKnownValue>): (v: TInput) => v is TInput & TKnownValue;
export { createTypeGuard };