guardClass()
guardClass()
guardClass()
Guards the value to be a class
of generic type variable Class
.
const guardClass = <
Class extends Function,
Payload extends object = object
>(
value: Class,
callback?: ResultCallback<Class, Payload>,
payload?: Payload
): value is Class => isClass(value, callback, payload);
Generic type variables
Class
extends
Function
Class
extends
Function
A generic type variable Class
constrained by Function
indicates the captured type of the given value
via the return type and the value
parameter of the provided callback
function ResultCallback
type.
Payload
extends
object
=
object
Payload
extends
object
=
object
The Payload
generic type variable constrained by object
indicates the type of optional parameter payload
of the supplied callback
function and payload
optional parameter of the guardClass()
function from which it captures its value.
Parameters
value: Class
value: Class
The class
of a generic type variable Class
to guard.
callback?: ResultCallback<Class, Payload>
callback?: ResultCallback<Class, Payload>
The optional callback function
of ResultCallback
type with parameters, the value
that has been checked, the result
of this check, and payload
of generic type variable Payload
with optional properties from the provided payload
, to handle them before the result
return. By default, it uses resultCallback()
function.
payload?: Payload
payload?: Payload
An optional object
of the generic type variable Payload
is assigned to the payload
of the given callback
function.
Return type
value is Class
value is Class
The return type is a boolean
as the result of its statement indicating the value
is a generic type variable Class
by default of type captured from the supplied value
.
Returns
The return value is a boolean
indicating whether the provided value
is a class
of a generic type variable Class
.
Example usage
// Example usage.
import { guardClass } from '@angular-package/type';
type PlusFunction = (...param: any) => any;
/**
* typeof === 'function'
* instanceof Function === true
* instanceof Object === true
*/
const FUNCTION: PlusFunction = (x: number, y: string): any => x + y;
/**
* typeof === 'function'
* instanceof Class === false
* instanceof Function === true
* instanceof Object === true
*/
class Class {
1030405027 = 'my new number';
5 = 'my number';
firstName = 'My name';
surname = 'Surname';
x = NUMBER;
y = STRING;
get [NUMBER](): number {
return this.x;
}
get [STRING](): string {
return this.y;
}
get [SYMBOL_NUMBER](): number {
return this.x;
}
get [SYMBOL_STRING](): string {
return this.y;
}
}
guardClass(FUNCTION); // false
guardClass<Class>(FUNCTION); // type error
Last updated
Was this helpful?