type-plus
Version:
Provides additional types for TypeScript.
40 lines • 2.17 kB
TypeScript
import { type AnyConstructor } from '../class/index.js';
import { type AnyFunction } from '../function/any_function.js';
/**
* 💥 *immediate*
* 🚦 *assertion*
*
* Assert the subject satisfies the specified type T
* @type T the type to check against.
*/
export declare function assertType<T>(subject: T): asserts subject is T;
export declare function assertType<T>(subject: unknown, validator: (s: T) => boolean): asserts subject is T;
/**
* @deprecated this is not a failsafe test
*/
export declare function assertType<T extends new (...args: any) => any>(subject: unknown, constructor: T): asserts subject is InstanceType<T>;
export declare namespace assertType {
var isUndefined: (subject: undefined) => asserts subject is undefined;
var noUndefined: <S>(subject: Exclude<S, undefined>) => void;
var isNull: (subject: null) => asserts subject is null;
var noNull: <S>(subject: Exclude<S, null>) => void;
var isNumber: (subject: number) => asserts subject is number;
var noNumber: <S>(subject: Exclude<S, number>) => void;
var isBoolean: (subject: boolean) => asserts subject is boolean;
var noBoolean: <S>(subject: Exclude<S, boolean>) => void;
var isTrue: (subject: true) => asserts subject is true;
var noTrue: <S>(subject: Exclude<S, true>) => void;
var isFalse: (subject: false) => asserts subject is false;
var noFalse: <S>(subject: Exclude<S, false>) => void;
var isString: (subject: string) => asserts subject is string;
var noString: <S>(subject: Exclude<S, string>) => void;
var isFunction: (subject: AnyFunction) => asserts subject is AnyFunction;
var noFunction: <S>(subject: Exclude<S, AnyFunction>) => void;
var isConstructor: (subject: AnyConstructor) => asserts subject is AnyConstructor;
var isError: (subject: Error) => asserts subject is Error;
var noError: <S>(subject: Exclude<S, Error>) => void;
var isNever: (_subject: never) => asserts _subject is never;
var custom: <T>(validator: (s: T) => boolean) => (subject: unknown) => asserts subject is T;
var as: <T>(_subject: unknown) => asserts _subject is T;
}
//# sourceMappingURL=assert_type.d.ts.map