guardObjectKeyIn()
guardObjectKeyIn()
guardObjectKeyIn()
Guards the value
to be an object
of a generic type variable Obj
that contains(or its prototype chain) the given key
.
const guardObjectKeyIn = <
Obj extends object,
Key extends keyof Obj,
Payload extends object = object
>(
value: Obj,
key: Key,
callback?: ResultCallback<Obj, { key: typeof key } & Payload>,
payload?: Payload
): value is Obj => isObjectKeyIn(value, key, callback, payload as any);
Generic type variables
Obj
extends
object
Obj
extends
object
A generic type variable Obj
constrained by object
indicates captured object
type of the given value
via the return type and the value
parameter of the provided callback
function ResultCallback
type.
Key
extends keyof
Obj
Key
extends keyof
Obj
A generic type variable Key
constrained by the keyof Obj
, by default of value captured from the supplied key
indicates the specific property name of Obj
.
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 guardObjectKeyIn()
function from which it captures its value.
Parameters
value: Obj
value: Obj
An object
of a generic type variable Obj
, by default of the type captured from itself that contains(or its prototype chain) the given key
, to guard.
key: Key
key: Key
A key of generic type variable Key
as the property name that the given value
contains(or its prototype chain).
callback?: ResultCallback<Obj, { key: typeof key } & Payload>
callback?: ResultCallback<Obj, { key: typeof key } & 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 Obj
The return type is a boolean
as the result of its statement indicating the value
is an object
of a generic type variable Obj
, by default of type captured from the supplied value
.
Returns
The return value is a boolean
indicating whether the value
is an object
of a generic Obj
that contains(or its prototype chain) the given key
.
Example usage
// Example usage.
import { guardObjectKeyIn } from '@angular-package/type';
const NUMBER = 10304050;
const STRING = '!@#$%^&*()abcdefghijklmnoprstuwyz';
const SYMBOL_NUMBER: unique symbol = Symbol(NUMBER);
interface ObjectOne {
1030405027?: string;
[NUMBER]: number;
[STRING]: string;
[SYMBOL_NUMBER]?: string;
}
const OBJECT_ONE: ObjectOne = {
1030405027: 'key is number',
[STRING]: 'key is string',
[SYMBOL_NUMBER]: 'key is symbol number',
get [NUMBER](): number {
return NUMBER;
},
};
guardObjectKeyIn(OBJECT_ONE, 1030405027); // true, value is ObjectOne
guardObjectKeyIn(OBJECT_ONE, SYMBOL_NUMBER); // true, value is ObjectOne
guardObjectKeyIn(OBJECT_ONE, STRING); // true, value is ObjectOne
guardObjectKeyIn(OBJECT_ONE, NUMBER); // true, value is ObjectOne
// Searching in an instance of `Class`.
class Class {
get [NUMBER](): number {
return NUMBER;
}
}
const CLASS = new Class();
// Getter found.
guardObjectKeyIn(CLASS, NUMBER); // true, value is Class
Last updated
Was this helpful?