TypeScript predicates and assertions library
npm install ts-predicate




``bash`
yarn add ts-predicateor
npm install ts-predicate
- TypeAssertion
- TypeGuard
- TypeHint
- ValueGuard
`ts`
static IsDefined(value: unknown): void
Asserts that the value is not nullable, nor NaN.
`ts`
static IsBoolean(value: unknown): void
Asserts that the value is a boolean.
`ts`
static IsNumber(value: unknown): void
Asserts that the value is a number, but not NaN.
`ts`
static IsInteger(value: unknown): void
Asserts that the value is a safe integer.
`ts`
static IsFiniteNumber(value: unknown): void
Asserts that the value is a number, but not NaN nor +/-Infinity.
`ts`
static IsString(value: unknown, constraints?: StringConstraints): void
Asserts that the value is a string.
The optional parameter constraints accept an object described by the following interface.
`ts`
interface StringConstraints
{
minLength?: number;
maxLength?: number;
}
If minLength is provided, it'll asserts that the value has at least this length.maxLength
If is provided, it'll asserts that the value has at most this length.
`ts`
static IsFilledString(value: unknown): void
Like IsString, but asserts that the string is never empty too.
`ts`
static IsArray(value: unknown, constraints?: ArrayConstraints): void
Asserts that the value is an array.
The optional parameter constraints accept an object described by the following interface.
`ts`
interface ArrayConstraints
{
minLength?: number;
itemGuard?: (item: unknown) => item is T;
}
If minLength is provided, it'll asserts that the value has at least that many items.itemGuard
If is provided, it'll asserts that the predicate hold true for every item.
`ts`
static IsPopulatedArray(value: unknown, constraints?: ArrayConstraints): void
Like IsArray, but asserts that the array is never empty too.
`ts`
static IsRecord(value: unknown): void
Asserts that the value is a record: an object with no prototype, or directly
using Object prototype.
`ts`
static IsObject(value: unknown): void
Asserts that the value is an object.
`ts`
static IsFunction(value: unknown): void
Asserts that the value is a function, generator function, method, or class.
`ts`
static IsCallable(value: unknown): void
Asserts that the value is not constructible.
`ts`
static HasNullableProperty(value: object, property: string): void
Asserts that the value is an object with the property defined, though it may be nullish or NaN.
`ts`
static HasProperty(value: object, property: string): void
Asserts that the value is an object with the property defined.
`ts`
static IsPrimitive(value: unknown): boolean
Narrow down the value to being nullish, NaN, a boolean, a number, or a string.
`ts`
static IsDefined(value: unknown): boolean
Narrow down the value to being not nullable, nor NaN.
`ts`
static IsBoolean(value: unknown): boolean
Narrow down the value to being a boolean.
`ts`
static IsNumber(value: unknown): boolean
Narrow down the value to being a number, but not NaN.
`ts`
static IsInteger(value: unknown): boolean
Narrow down the value to being a safe integer.
`ts`
static IsFiniteNumber(value: unknown): boolean
Narrow down the value to being a number, but not NaN nor +/-Infinity.
`ts`
static IsString(value: unknown): boolean
Narrow down the value to being a string.
`ts`
static IsFilledString(value: unknown): void
Asserts that the value is a non empty string.
`ts`
static IsArray(value: unknown, constraints?: ArrayConstraints): boolean
Narrow down the value to being an array.
The optional parameter constraints accept an object described by the following interface.
`ts`
interface ArrayConstraints
{
minLength?: number;
itemGuard?: (item: unknown) => item is T;
}
If minLength is provided, it'll confirm that the value has at least that many items.itemGuard
If is provided, it'll confirm that the predicate hold true for every item.
`ts`
static IsPopulatedArray(value: unknown, constraints?: ArrayConstraints): boolean
Like IsArray, but narrow it to being a populated array.
`ts`
static IsRecord(value: unknown): boolean
Narrow down the value to being a record: an object with no prototype, or directly using Object prototype.
`ts`
static IsObject(value: unknown): boolean
Narrow down the value to being an object.
`ts`
static IsFunction(value: unknown): boolean
Narrow down the value to being a function, generator function, method, or class.
`ts`
static IsCallable(value: unknown): boolean
Narrow down the value to being not constructible.
`ts`
static HasNullableProperty(value: object, property: string): boolean
Narrow down the value to being an object with the property defined, though it may be nullish or NaN.
`ts`
static HasProperty(value: object, property: string): boolean
Narrow down the value to being an object with the property defined.
`ts`
static GetBaseType(value: any): string
Return a string depending on the type of the given value.
Possible values:
- undefined
- null
- NaN
- boolean
- number
- string
- array
- object
- function
- generator
- class
Note: generator refers to a generator function.
`ts`
static GetDetailedType(value: any): string
Return a string depending on the type of the given value.
Provide more details than GetBaseType.
Possible values:
- undefined
- null
- NaN
- boolean (true or false)
- number (N)
- string (N characters)
- array (N items)
- anonymous object
- object anonymous class
- object ClassName
- anonymous function
- function name
- anonymous generator
- generator name
- anonymous class
- class Name
Note: generator refers to a generator function.
`ts`
static GetName(value: any): string|undefined
If given a function, generator function, method, or class, return its name.
If given an object, return its constructor name.
If the given value doesn't have a name, return an empty string.
For any other value, return undefined.
`ts``
static IsSimilar(a: any, b: any): boolean
Return true in the following cases :
- The same value has been passed as both arguments.
- Similar primitive values have been passed as arguments.
- Deeply similar arrays or records have been passed as arguments.
Otherwise, return false.