Function hasPlainObject

  • Tests whether a value of type T contains a property key whose type tests positively when tested with isPlainObject. If so, the type of the tested value is narrowed to reflect the existence of that key for convenient access in the same scope. Returns false if the property key does not exist on the object or the value stored by that key is not of type object.

    // type of obj -> unknown
    if (hasNumber(obj, 'status')) {
    // type of obj -> { status: number }
    if (hasPlainObject(obj, 'data')) {
    // type of obj -> { status: number } & { data: object }
    } else if (hasString('error')) {
    // type of obj -> { status: number } & { error: string }
    }
    }

    Type Parameters

    • V extends object = object
    • T = unknown
    • K extends string = string

    Parameters

    • value: T

      The value to test.

    • key: K

    Returns value is T & object & View<K, V>