@esfx/iter-fn Package

    An iteration and query API for ECMAScript iterables.

    Installation

    npm i @esfx/iter-fn
    

    Usage

    • TypeScript
    • JavaScript (CommonJS)
    import { map } from "@esfx/iter-fn";
    const x = map([1, 2, 3], x => x * 2);
    x; // [2, 4, 6]
    
    const { map } = require("@esfx/iter-fn");
    const x = map([1, 2, 3], x => x * 2);
    x; // [2, 4, 6]
    

    Interfaces

    ConsumeOptions

    Functions

    ancestors(source, predicate)

    Selects the ancestors of each node in the iterable. This is equivalent to the ancestor::* selector in XPath. Hierarchy

    Declaration
    export declare function ancestors<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    ancestors(source, predicate)

    Declaration
    export declare function ancestors<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    ancestorsAndSelf(source, predicate)

    Selects the ancestors of each node in the iterable, along with the node itself. This is equivalent to the ancestor-or-self::* selector in XPath. Hierarchy

    Declaration
    export declare function ancestorsAndSelf<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    ancestorsAndSelf(source, predicate)

    Declaration
    export declare function ancestorsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    append(source, value)

    Creates an Iterable for the elements of source with the provided value appended to the end.

    Declaration
    export declare function append<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, value: T): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    The Iterable to append to.

    value
    T

    The value to append. Subquery

    Returns
    HierarchyIterable<TNode, T>

    append(source, value)

    Creates an Iterable for the elements of source with the provided value appended to the end.

    Declaration
    export declare function append<T>(source: Iterable<T>, value: T): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    The Iterable to append to.

    value
    T

    The value to append. Subquery

    Returns
    Iterable<T>

    average(source)

    Computes the average for a series of numbers.

    Declaration
    export declare function average(source: Iterable<number>): number;
    Parameters
    source
    Iterable<number>

    An Iterable object. Scalar

    Returns
    number

    average(source, elementSelector)

    Computes the average for a series of numbers.

    Declaration
    export declare function average<T>(source: Iterable<T>, elementSelector: (element: T) => number): number;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    elementSelector
    (element: T) => number

    A callback used to convert a value in source to a number. Scalar

    Returns
    number

    bottomMost(source, predicate, equaler)

    Creates a HierarchyIterable for the bottom-most elements of a HierarchyIterable. Elements of source that are an ancestor of any other element of source are removed.

    Declaration
    export declare function bottomMost<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (value: T) => value is U, equaler?: Equaler<TNode>): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    A HierarchyIterable object.

    predicate
    (value: T) => value is U

    An optional callback used to filter the results. Hierarchy

    equaler
    Equaler<TNode>

    Returns
    HierarchyIterable<TNode, U>

    bottomMost(source, predicate, equaler)

    Creates a HierarchyIterable for the bottom-most elements of a HierarchyIterable. Elements of source that are an ancestor of any other element of source are removed.

    Declaration
    export declare function bottomMost<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate?: (value: T) => boolean, equaler?: Equaler<TNode>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    A HierarchyIterable object.

    predicate
    (value: T) => boolean

    An optional callback used to filter the results.

    equaler
    Equaler<TNode>

    An optional Equaler used to compare equality between nodes. Hierarchy

    Returns
    HierarchyIterable<TNode, T>

    children(source, predicate)

    Selects the children of each node in the iterable. This is equivalent to the child::* selector in XPath, or the > combinator in CSS. Hierarchy

    Declaration
    export declare function children<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    children(source, predicate)

    Declaration
    export declare function children<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    concat(left, right)

    Creates an Iterable that concatenates two Iterable objects.

    Declaration
    export declare function concat<TNode, T extends TNode>(left: HierarchyIterable<TNode, T>, right: Iterable<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object. Subquery

    Returns
    HierarchyIterable<TNode, T>

    concat(left, right)

    Creates an Iterable that concatenates two Iterable objects.

    Declaration
    export declare function concat<TNode, T extends TNode>(left: Iterable<T>, right: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    HierarchyIterable<TNode, T>

    An Iterable object. Subquery

    Returns
    HierarchyIterable<TNode, T>

    concat(left, right)

    Creates an Iterable that concatenates two Iterable objects.

    Declaration
    export declare function concat<T>(left: Iterable<T>, right: Iterable<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object. Subquery

    Returns
    Iterable<T>

    consume(iterator, options)

    Creates an Iterable that, when iterated, consumes the provided Iterator.

    Declaration
    export declare function consume<T>(iterator: Iterator<T>, options?: ConsumeOptions): Iterable<T>;
    Type Parameters
    T

    Parameters
    iterator
    Iterator<T>

    An Iterator object. Query

    options
    ConsumeOptions

    Returns
    Iterable<T>

    continuous(value)

    Creates an Iterable that repeats the provided value forever.

    Declaration
    export declare function continuous<T>(value: T): Iterable<T>;
    Type Parameters
    T

    Parameters
    value
    T

    The value for each element of the Iterable. Query

    Returns
    Iterable<T>

    copyTo(source, collection, start, count)

    Writes each element of a source iterable to a destination. The destination must already have enough space to write the requested number of elements (i.e. arrays are *not* resized).

    Declaration
    export declare function copyTo<T, U extends IndexedCollection<T> | T[]>(source: Iterable<T>, collection: U, start?: number, count?: number): U;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    collection
    U

    The destination array or IndexedCollection.

    start
    number

    The offset into the array at which to start writing.

    count
    number

    The number of elements to write to the array. Scalar

    Returns
    U

    corresponds(left, right, equaler)

    Computes a scalar value indicating whether every element in left corresponds to a matching element in right at the same position.

    Declaration
    export declare function corresponds<T>(left: Iterable<T>, right: Iterable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    EqualityComparison<T> | Equaler<T>

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    corresponds(left, right, equaler)

    Computes a scalar value indicating whether every element in left corresponds to a matching element in right at the same position.

    Declaration
    export declare function corresponds<T, U>(left: Iterable<T>, right: Iterable<U>, equaler: (left: T, right: U) => boolean): boolean;
    Type Parameters
    T

    U

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<U>

    An Iterable object.

    equaler
    (left: T, right: U) => boolean

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    correspondsBy(left, right, keySelector, keyEqualer)

    Computes a scalar value indicating whether the key for every element in left corresponds to a matching key in right at the same position.

    Declaration
    export declare function correspondsBy<T, K>(left: Iterable<T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): boolean;
    Type Parameters
    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element. Scalar

    keyEqualer
    Equaler<K>

    Returns
    boolean

    correspondsBy(left, right, leftKeySelector, rightKeySelector, keyEqualer)

    Computes a scalar value indicating whether the key for every element in left corresponds to a matching key in right at the same position.

    Declaration
    export declare function correspondsBy<T, U, K>(left: Iterable<T>, right: Iterable<U>, leftKeySelector: (element: T) => K, rightKeySelector: (element: U) => K, keyEqualer?: EqualityComparison<K> | Equaler<K>): boolean;
    Type Parameters
    T

    U

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<U>

    An Iterable object.

    leftKeySelector
    (element: T) => K

    A callback used to select the key for each element in left.

    rightKeySelector
    (element: U) => K

    A callback used to select the key for each element in right.

    keyEqualer
    EqualityComparison<K> | Equaler<K>

    An optional callback used to compare the equality of two keys. Scalar

    Returns
    boolean

    count(source, predicate)

    Counts the number of elements, optionally filtering elements using the supplied callback.

    Declaration
    export declare function count<T>(source: Iterable<T>, predicate?: (element: T) => boolean): number;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    An optional callback used to match each element. Scalar

    Returns
    number

    defaultIfEmpty(source, defaultValue)

    Creates an Iterable that contains the provided default value if source contains no elements.

    Declaration
    export declare function defaultIfEmpty<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, defaultValue: T): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    defaultValue
    T

    The default value. Subquery

    Returns
    HierarchyIterable<TNode, T>

    defaultIfEmpty(source, defaultValue)

    Creates an Iterable that contains the provided default value if source contains no elements.

    Declaration
    export declare function defaultIfEmpty<T>(source: Iterable<T>, defaultValue: T): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    defaultValue
    T

    The default value. Subquery

    Returns
    Iterable<T>

    descendants(source, predicate)

    Selects the descendents of each node in the iterable. This is equivalent to the descendant::* selector in XPath, or the (space) combinator in CSS. Hierarchy

    Declaration
    export declare function descendants<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    descendants(source, predicate)

    Declaration
    export declare function descendants<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    descendantsAndSelf(source, predicate)

    Selects the descendents of each node in the iterable, along with the node itself. This is equivalent to the descendant-or-self::* selector in XPath. Hierarchy

    Declaration
    export declare function descendantsAndSelf<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    descendantsAndSelf(source, predicate)

    Declaration
    export declare function descendantsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    distinct(source, keyEqualer)

    Creates an Iterable for the distinct elements of source. Subquery

    Declaration
    export declare function distinct<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keyEqualer
    Equaler<K>

    Returns
    HierarchyIterable<TNode, T>

    distinct(source, equaler)

    Creates an Iterable for the distinct elements of source. Subquery

    Declaration
    export declare function distinct<T>(source: Iterable<T>, equaler?: Equaler<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare element equality.

    Returns
    Iterable<T>

    distinctBy(source, keySelector, keyEqualer)

    Creates an Iterable for the distinct elements of source. Subquery

    Declaration
    export declare function distinctBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (value: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key to determine uniqueness.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality.

    Returns
    HierarchyIterable<TNode, T>

    distinctBy(source, keySelector, keyEqualer)

    Creates an Iterable for the distinct elements of source. Subquery

    Declaration
    export declare function distinctBy<T, K>(source: Iterable<T>, keySelector: (value: T) => K, keyEqualer?: Equaler<K>): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key to determine uniqueness.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality.

    Returns
    Iterable<T>

    drop(source, count)

    Creates a subquery containing all elements except the first elements up to the supplied count.

    Declaration
    export declare function drop<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    count
    number

    The number of elements to skip. Subquery

    Returns
    HierarchyIterable<TNode, T>

    drop(source, count)

    Creates a subquery containing all elements except the first elements up to the supplied count.

    Declaration
    export declare function drop<T>(source: Iterable<T>, count: number): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    count
    number

    The number of elements to skip. Subquery

    Returns
    Iterable<T>

    dropRight(source, count)

    Creates a subquery containing all elements except the last elements up to the supplied count.

    Declaration
    export declare function dropRight<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    count
    number

    The number of elements to skip. Subquery

    Returns
    HierarchyIterable<TNode, T>

    dropRight(source, count)

    Creates a subquery containing all elements except the last elements up to the supplied count.

    Declaration
    export declare function dropRight<T>(source: Iterable<T>, count: number): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    count
    number

    The number of elements to skip. Subquery

    Returns
    Iterable<T>

    dropUntil(source, predicate)

    Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

    Declaration
    export declare function dropUntil<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    dropUntil(source, predicate)

    Creates a subquery containing all elements except the first elements that do not match the supplied predicate.

    Declaration
    export declare function dropUntil<T>(source: Iterable<T>, predicate: (element: T) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    dropWhile(source, predicate)

    Creates a subquery containing all elements except the first elements that match the supplied predicate.

    Declaration
    export declare function dropWhile<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    dropWhile(source, predicate)

    Creates a subquery containing all elements except the first elements that match the supplied predicate.

    Declaration
    export declare function dropWhile<T>(source: Iterable<T>, predicate: (element: T) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    elementAt(source, offset)

    Finds the value at the provided offset. A negative offset starts from the last element.

    Declaration
    export declare function elementAt<T>(source: Iterable<T>, offset: number | Index): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    offset
    number | Index

    An offset. Scalar

    Returns
    T | undefined

    empty()

    Creates an Iterable with no elements. Query

    Declaration
    export declare function empty<T>(): Iterable<T>;
    Type Parameters
    T

    Returns
    Iterable<T>

    endsWith(left, right, equaler)

    Computes a scalar value indicating whether the elements of left end with the same sequence of elements in right.

    Declaration
    export declare function endsWith<T>(left: Iterable<T>, right: Iterable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    EqualityComparison<T> | Equaler<T>

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    endsWith(left, right, equaler)

    Computes a scalar value indicating whether the elements of left end with the same sequence of elements in right.

    Declaration
    export declare function endsWith<T, U>(left: Iterable<T>, right: Iterable<U>, equaler: (left: T, right: U) => boolean): boolean;
    Type Parameters
    T

    U

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<U>

    An Iterable object.

    equaler
    (left: T, right: U) => boolean

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    every(source, predicate)

    Computes a scalar value indicating whether all elements match the supplied callback.

    Declaration
    export declare function every<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): source is Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    A callback used to match each element. Scalar

    Returns
    source is Iterable<U>

    every(source, predicate)

    Computes a scalar value indicating whether all elements match the supplied callback.

    Declaration
    export declare function every<T>(source: Iterable<T>, predicate: (element: T) => boolean): boolean;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Scalar

    Returns
    boolean

    except(left, right, equaler)

    Creates an Iterable for the set difference between two Iterable objects.

    Declaration
    export declare function except<TNode, T extends TNode>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    except(left, right, equaler)

    Creates an Iterable for the set difference between two Iterable objects.

    Declaration
    export declare function except<T>(left: Iterable<T>, right: Iterable<T>, equaler?: Equaler<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    Iterable<T>

    exceptBy(left, right, keySelector, keyEqualer)

    Creates an Iterable for the set difference between two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function exceptBy<TNode, T extends TNode, K>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    exceptBy(left, right, keySelector, keyEqualer)

    Creates an Iterable for the set difference between two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function exceptBy<T, K>(left: Iterable<T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<T>

    exclude(source, values)

    Creates an Iterable with every instance of the specified value removed.

    Declaration
    export declare function exclude<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, ...values: T[]): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    values
    T[]

    The values to exclude. Subquery

    Returns
    HierarchyIterable<TNode, T>

    exclude(source, values)

    Creates an Iterable with every instance of the specified value removed.

    Declaration
    export declare function exclude<T>(source: Iterable<T>, ...values: T[]): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    values
    T[]

    The values to exclude. Subquery

    Returns
    Iterable<T>

    filter(source, predicate)

    Creates an Iterable whose elements match the supplied predicate.

    Declaration
    export declare function filter<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, U>

    filter(source, predicate)

    Creates an Iterable whose elements match the supplied predicate.

    Declaration
    export declare function filter<T, U extends T>(source: Iterable<T>, predicate: (element: T, offset: number) => element is U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    A callback used to match each element. Subquery

    Returns
    Iterable<U>

    filter(source, predicate)

    Creates an Iterable whose elements match the supplied predicate.

    Declaration
    export declare function filter<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filter(source, predicate)

    Creates an Iterable whose elements match the supplied predicate.

    Declaration
    export declare function filter<T>(source: Iterable<T>, predicate: (element: T, offset: number) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    filterBy(source, keySelector, predicate)

    Creates an Iterable where the selected key for each element matches the supplied predicate.

    Declaration
    export declare function filterBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, predicate: (key: K, offset: number) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    predicate
    (key: K, offset: number) => boolean

    A callback used to match each key. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filterBy(source, keySelector, predicate)

    Creates an Iterable where the selected key for each element matches the supplied predicate.

    Declaration
    export declare function filterBy<T, K>(source: Iterable<T>, keySelector: (element: T) => K, predicate: (key: K, offset: number) => boolean): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    predicate
    (key: K, offset: number) => boolean

    A callback used to match each key. Subquery

    Returns
    Iterable<T>

    filterDefined(source)

    Creates an Iterable whose elements are neither null nor undefined.

    Declaration
    export declare function filterDefined<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, NonNullable<T>>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object. Subquery

    Returns
    HierarchyIterable<TNode, NonNullable<T>>

    filterDefined(source)

    Creates an Iterable whose elements are neither null nor undefined.

    Declaration
    export declare function filterDefined<T>(source: Iterable<T>): Iterable<NonNullable<T>>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object. Subquery

    Returns
    Iterable<NonNullable<T>>

    filterDefinedBy(source, keySelector)

    Creates an Iterable where the selected key for each element is neither null nor undefined.

    Declaration
    export declare function filterDefinedBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (value: T) => K): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key for each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filterDefinedBy(source, keySelector)

    Creates an Iterable where the selected key for each element is neither null nor undefined.

    Declaration
    export declare function filterDefinedBy<T, K>(source: Iterable<T>, keySelector: (value: T) => K): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key for each element. Subquery

    Returns
    Iterable<T>

    filterNot(source, predicate)

    Creates an Iterable whose elements do not match the supplied predicate.

    Declaration
    export declare function filterNot<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, U>

    filterNot(source, predicate)

    Creates an Iterable whose elements do not match the supplied predicate.

    Declaration
    export declare function filterNot<T, U extends T>(source: Iterable<T>, predicate: (element: T, offset: number) => element is U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    A callback used to match each element. Subquery

    Returns
    Iterable<U>

    filterNot(source, predicate)

    Creates an Iterable whose elements do not match the supplied predicate.

    Declaration
    export declare function filterNot<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filterNot(source, predicate)

    Creates an Iterable whose elements do not match the supplied predicate.

    Declaration
    export declare function filterNot<T>(source: Iterable<T>, predicate: (element: T, offset: number) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    filterNotBy(source, keySelector, predicate)

    Creates an Iterable where the selected key for each element does not match the supplied predicate.

    Declaration
    export declare function filterNotBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, predicate: (key: K, offset: number) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    predicate
    (key: K, offset: number) => boolean

    A callback used to match each key. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filterNotBy(source, keySelector, predicate)

    Creates an Iterable where the selected key for each element does not match the supplied predicate.

    Declaration
    export declare function filterNotBy<T, K>(source: Iterable<T>, keySelector: (element: T) => K, predicate: (key: K, offset: number) => boolean): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    predicate
    (key: K, offset: number) => boolean

    A callback used to match each key. Subquery

    Returns
    Iterable<T>

    filterNotDefinedBy(source, keySelector)

    Creates an Iterable where the selected key for each element is either null or undefined.

    Declaration
    export declare function filterNotDefinedBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (value: T) => K): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key for each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    filterNotDefinedBy(source, keySelector)

    Creates an Iterable where the selected key for each element is either null or undefined.

    Declaration
    export declare function filterNotDefinedBy<T, K>(source: Iterable<T>, keySelector: (value: T) => K): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to select the key for each element. Subquery

    Returns
    Iterable<T>

    first(source, predicate)

    Gets the first element, optionally filtering elements using the supplied callback.

    Declaration
    export declare function first<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): U | undefined;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    An optional callback used to match each element. Scalar

    Returns
    U | undefined

    first(source, predicate)

    Gets the first element, optionally filtering elements using the supplied callback.

    Declaration
    export declare function first<T>(source: Iterable<T>, predicate?: (element: T) => boolean): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    An optional callback used to match each element. Scalar

    Returns
    T | undefined

    firstChild(source, predicate)

    Selects the first child of each node in the iterable. This is equivalent to the child::*[first()] selector in XPath, or the :first-child pseudo class in CSS. Hierarchy

    Declaration
    export declare function firstChild<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    firstChild(source, predicate)

    Declaration
    export declare function firstChild<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    flatMap(source, projection)

    Creates an Iterable that iterates the results of applying a callback to each element of source.

    Declaration
    export declare function flatMap<T, U>(source: Iterable<T>, projection: (element: T) => Iterable<U>): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    projection
    (element: T) => Iterable<U>

    A callback used to map each element into an iterable. Subquery

    Returns
    Iterable<U>

    flatMap(source, projection, resultSelector)

    Creates an Iterable that iterates the results of applying a callback to each element of source.

    Declaration
    export declare function flatMap<T, U, R>(source: Iterable<T>, projection: (element: T) => Iterable<U>, resultSelector: (element: T, innerElement: U) => R): Iterable<R>;
    Type Parameters
    T

    U

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    projection
    (element: T) => Iterable<U>

    A callback used to map each element into an iterable.

    resultSelector
    (element: T, innerElement: U) => R

    A callback used to map an element and one of its projected values into a result. Subquery

    Returns
    Iterable<R>

    following(source, predicate)

    Selects the nodes that follow each node in the iterable. This is equivalent to the following-sibling::* selector in XPath or the ~ combinator in CSS. Hierarchy

    Declaration
    export declare function following<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    following(source, predicate)

    Declaration
    export declare function following<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    followingSiblings(source, predicate)

    Selects the siblings that follow each node in the iterable. This is equivalent to the following-sibling::* selector in XPath or the ~ combinator in CSS. Hierarchy

    Declaration
    export declare function followingSiblings<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    followingSiblings(source, predicate)

    Declaration
    export declare function followingSiblings<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    forEach(source, callback)

    Invokes a callback for each element of source.

    Declaration
    export declare function forEach<T>(source: Iterable<T>, callback: (element: T, offset: number) => void): void;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    callback
    (element: T, offset: number) => void

    The callback to invoke. Scalar

    Returns
    void

    fullJoin(outer, inner, outerKeySelector, innerKeySelector, resultSelector, keyEqualer)

    Creates an Iterable for the correlated elements between an outer Iterable object and an inner Iterable object.

    Declaration
    export declare function fullJoin<O, I, K, R>(outer: Iterable<O>, inner: Iterable<I>, outerKeySelector: (element: O) => K, innerKeySelector: (element: I) => K, resultSelector: (outer: O | undefined, inner: I | undefined) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    O

    I

    K

    R

    Parameters
    outer
    Iterable<O>

    An Iterable object.

    inner
    Iterable<I>

    An Iterable object.

    outerKeySelector
    (element: O) => K

    A callback used to select the key for an element in outer.

    innerKeySelector
    (element: I) => K

    A callback used to select the key for an element in inner.

    resultSelector
    (outer: O | undefined, inner: I | undefined) => R

    A callback used to select the result for the correlated elements.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Join

    Returns
    Iterable<R>

    generate(count, generator)

    Creates an Iterable whose values are provided by a callback executed a provided number of times.

    Declaration
    export declare function generate<T>(count: number, generator: (offset: number) => T): Iterable<T>;
    Type Parameters
    T

    Parameters
    count
    number

    The number of times to execute the callback.

    generator
    (offset: number) => T

    The callback to execute. Query

    Returns
    Iterable<T>

    groupBy(source, keySelector, keyEqualer)

    Groups each element of an Iterable by its key.

    Declaration
    export declare function groupBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<HierarchyGrouping<K, TNode, T>>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<HierarchyGrouping<K, TNode, T>>

    groupBy(source, keySelector, elementSelector, resultSelector, keyEqualer)

    Groups each element of an Iterable by its key.

    Declaration
    export declare function groupBy<TNode, T extends TNode, K, R>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, elementSelector: undefined, resultSelector: (key: K, elements: HierarchyIterable<TNode, T>) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    TNode

    T

    K

    R

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    undefined

    A callback used to select a value for an element.

    resultSelector
    (key: K, elements: HierarchyIterable<TNode, T>) => R

    A callback used to select a result from a group.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<R>

    groupBy(source, keySelector, keyEqualer)

    Groups each element of an Iterable by its key.

    Declaration
    export declare function groupBy<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<Grouping<K, T>>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<Grouping<K, T>>

    groupBy(source, keySelector, elementSelector, keyEqualer)

    Groups each element of an Iterable by its key.

    Declaration
    export declare function groupBy<T, K, V>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, keyEqualer?: Equaler<K>): Iterable<Grouping<K, V>>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    (element: T) => V

    A callback used to select a value for an element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<Grouping<K, V>>

    groupBy(source, keySelector, elementSelector, resultSelector, keyEqualer)

    Groups each element of an Iterable by its key.

    Declaration
    export declare function groupBy<T, K, V, R>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, resultSelector: (key: K, elements: Iterable<V>) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    T

    K

    V

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    (element: T) => V

    A callback used to select a value for an element.

    resultSelector
    (key: K, elements: Iterable<V>) => R

    A callback used to select a result from a group.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<R>

    groupJoin(outer, inner, outerKeySelector, innerKeySelector, resultSelector, keyEqualer)

    Creates a grouped Iterable for the correlated elements between an outer Iterable object and an inner Iterable object.

    Declaration
    export declare function groupJoin<O, I, K, R>(outer: Iterable<O>, inner: Iterable<I>, outerKeySelector: (element: O) => K, innerKeySelector: (element: I) => K, resultSelector: (outer: O, inner: Iterable<I>) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    O

    I

    K

    R

    Parameters
    outer
    Iterable<O>

    An Iterable object.

    inner
    Iterable<I>

    An Iterable object.

    outerKeySelector
    (element: O) => K

    A callback used to select the key for an element in outer.

    innerKeySelector
    (element: I) => K

    A callback used to select the key for an element in inner.

    resultSelector
    (outer: O, inner: Iterable<I>) => R

    A callback used to select the result for the correlated elements.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Join

    Returns
    Iterable<R>

    includes(source, value, equaler)

    Computes a scalar value indicating whether the provided value is included in an Iterable.

    Declaration
    export declare function includes<T>(source: Iterable<T>, value: T, equaler?: EqualityComparison<T> | Equaler<T>): boolean;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    value
    T

    A value.

    equaler
    EqualityComparison<T> | Equaler<T>

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    includes(source, value, equaler)

    Computes a scalar value indicating whether the provided value is included in an Iterable.

    Declaration
    export declare function includes<T, U>(source: Iterable<T>, value: U, equaler: (left: T, right: U) => boolean): boolean;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    value
    U

    A value.

    equaler
    (left: T, right: U) => boolean

    An optional callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    includesSequence(left, right, equaler)

    Computes a scalar value indicating whether the elements of left include an exact sequence of elements from right.

    Declaration
    export declare function includesSequence<T>(left: Iterable<T>, right: Iterable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    EqualityComparison<T> | Equaler<T>

    A callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    includesSequence(left, right, equaler)

    Computes a scalar value indicating whether the elements of left include an exact sequence of elements from right.

    Declaration
    export declare function includesSequence<T, U>(left: Iterable<T>, right: Iterable<U>, equaler: (left: T, right: U) => boolean): boolean;
    Type Parameters
    T

    U

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<U>

    An Iterable object.

    equaler
    (left: T, right: U) => boolean

    A callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    intersect(left, right, equaler)

    Creates an Iterable for the set intersection of two Iterable objects.

    Declaration
    export declare function intersect<TNode, T extends TNode>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    intersect(left, right, equaler)

    Creates an Iterable for the set intersection of two Iterable objects.

    Declaration
    export declare function intersect<TNode, T extends TNode>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    HierarchyIterable<TNode, T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    intersect(left, right, equaler)

    Creates an Iterable for the set intersection of two Iterable objects.

    Declaration
    export declare function intersect<T>(left: Iterable<T>, right: Iterable<T>, equaler?: Equaler<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    Iterable<T>

    intersectBy(left, right, keySelector, keyEqualer)

    Creates an Iterable for the set intersection of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function intersectBy<TNode, T extends TNode, K>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    intersectBy(left, right, keySelector, keyEqualer)

    Creates an Iterable for the set intersection of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function intersectBy<TNode, T extends TNode, K>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    intersectBy(left, right, keySelector, keyEqualer)

    Creates an Iterable for the set intersection of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function intersectBy<T, K>(left: Iterable<T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<T>

    into(source, callback)

    Pass the entire source to the provided callback, returning a scalar result. Useful as the last step in a query.

    Declaration
    export declare function into<T, S extends Iterable<T>, R>(source: S, callback: (source: S) => R): R;
    Type Parameters
    T

    S

    R

    Parameters
    source
    S

    An Iterable object.

    callback
    (source: S) => R

    A callback function. Subquery

    Returns
    R

    join(outer, inner, outerKeySelector, innerKeySelector, resultSelector, keyEqualer)

    Creates an Iterable for the correlated elements of two Iterable objects.

    Declaration
    export declare function join<O, I, K, R>(outer: Iterable<O>, inner: Iterable<I>, outerKeySelector: (element: O) => K, innerKeySelector: (element: I) => K, resultSelector: (outer: O, inner: I) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    O

    I

    K

    R

    Parameters
    outer
    Iterable<O>

    An Iterable object.

    inner
    Iterable<I>

    An Iterable object.

    outerKeySelector
    (element: O) => K

    A callback used to select the key for an element in outer.

    innerKeySelector
    (element: I) => K

    A callback used to select the key for an element in inner.

    resultSelector
    (outer: O, inner: I) => R

    A callback used to select the result for the correlated elements.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Join

    Returns
    Iterable<R>

    last(source, predicate)

    Gets the last element of a Iterable, optionally filtering elements using the supplied callback.

    Declaration
    export declare function last<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): U | undefined;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    An optional callback used to match each element. Scalar

    Returns
    U | undefined

    last(source, predicate)

    Gets the last element of a Iterable, optionally filtering elements using the supplied callback.

    Declaration
    export declare function last<T>(source: Iterable<T>, predicate?: (element: T) => boolean): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    An optional callback used to match each element. Scalar

    Returns
    T | undefined

    lastChild(source, predicate)

    Selects the last child of each node in the iterable. This is equivalent to the child::*[last()] selector in XPath, or the :last-child pseudo class in CSS. Hierarchy

    Declaration
    export declare function lastChild<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    lastChild(source, predicate)

    Declaration
    export declare function lastChild<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    map(source, selector)

    Creates an Iterable by applying a callback to each element of a Iterable.

    Declaration
    export declare function map<T, U>(source: Iterable<T>, selector: (element: T, offset: number) => U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    selector
    (element: T, offset: number) => U

    A callback used to map each element. Subquery

    Returns
    Iterable<U>

    materialize(source)

    Eagerly evaluate the Iterable, returning a new Iterable. Subquery

    Declaration
    export declare function materialize<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    Returns
    HierarchyIterable<TNode, T>

    materialize(source)

    Declaration
    export declare function materialize<T>(source: Iterable<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    Returns
    Iterable<T>

    max(source, comparer)

    Gets the maximum element of a Iterable, optionally comparing elements using the supplied callback.

    Declaration
    export declare function max<T>(source: Iterable<T>, comparer?: Comparison<T> | Comparer<T>): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    comparer
    Comparison<T> | Comparer<T>

    An optional callback used to compare two elements. Scalar

    Returns
    T | undefined

    maxBy(source, keySelector, keyComparer)

    Gets the maximum element of a Iterable, optionally comparing the keys of each element using the supplied callback.

    Declaration
    export declare function maxBy<T, K>(source: Iterable<T>, keySelector: (value: T) => K, keyComparer?: Comparison<K> | Comparer<K>): T | undefined;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to choose the key to compare.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare the keys. Scalar

    Returns
    T | undefined

    min(source, comparer)

    Gets the minimum element of a Iterable, optionally comparing elements using the supplied callback.

    Declaration
    export declare function min<T>(source: Iterable<T>, comparer?: Comparison<T> | Comparer<T>): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    comparer
    Comparison<T> | Comparer<T>

    An optional callback used to compare two elements. Scalar

    Returns
    T | undefined

    minBy(source, keySelector, keyComparer)

    Gets the minimum element of a Iterable, optionally comparing the keys of each element using the supplied callback.

    Declaration
    export declare function minBy<T, K>(source: Iterable<T>, keySelector: (value: T) => K, keyComparer?: Comparison<K> | Comparer<K>): T | undefined;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (value: T) => K

    A callback used to choose the key to compare.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare the keys. Scalar

    Returns
    T | undefined

    nthChild(source, offset, predicate)

    Creates a HierarchyIterable for the child of each element at the specified offset. A negative offset starts from the last child. This is equivalent to the :nth-child() pseudo-class in CSS.

    Declaration
    export declare function nthChild<TNode, U extends TNode>(source: HierarchyIterable<TNode>, offset: number, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    A HierarchyIterable object.

    offset
    number

    The offset for the child.

    predicate
    (element: TNode) => element is U

    An optional callback used to filter the results. Hierarchy

    Returns
    HierarchyIterable<TNode, U>

    nthChild(source, offset, predicate)

    Declaration
    export declare function nthChild<TNode>(source: HierarchyIterable<TNode>, offset: number, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    offset
    number

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    once(value)

    Creates an Iterable over a single element.

    Declaration
    export declare function once<T>(value: T): Iterable<T>;
    Type Parameters
    T

    Parameters
    value
    T

    The only element for the Iterable. Query

    Returns
    Iterable<T>

    orderBy(source, keySelector, keyComparer)

    Creates an OrderedIterable whose elements are sorted in ascending order by the provided key.

    Declaration
    export declare function orderBy<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedHierarchyIterable<TNode, T>

    orderBy(source, keySelector, keyComparer)

    Creates an OrderedIterable whose elements are sorted in ascending order by the provided key.

    Declaration
    export declare function orderBy<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedIterable<T>

    orderByDescending(source, keySelector, keyComparer)

    Creates an OrderedIterable whose elements are sorted in descending order by the provided key.

    Declaration
    export declare function orderByDescending<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedHierarchyIterable<TNode, T>

    orderByDescending(source, keySelector, keyComparer)

    Creates an OrderedIterable whose elements are sorted in descending order by the provided key.

    Declaration
    export declare function orderByDescending<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedIterable<T>

    pageBy(source, pageSize)

    Creates an Iterable that splits an Iterable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

    Declaration
    export declare function pageBy<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, pageSize: number): Iterable<HierarchyPage<TNode, T>>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    pageSize
    number

    The number of elements per page. Subquery

    Returns
    Iterable<HierarchyPage<TNode, T>>

    pageBy(source, pageSize, pageSelector)

    Creates an Iterable that splits an Iterable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

    Declaration
    export declare function pageBy<TNode, T extends TNode, R>(source: HierarchyIterable<TNode, T>, pageSize: number, pageSelector: (page: number, offset: number, values: HierarchyIterable<TNode, T>) => R): Iterable<R>;
    Type Parameters
    TNode

    T

    R

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    pageSize
    number

    The number of elements per page.

    pageSelector
    (page: number, offset: number, values: HierarchyIterable<TNode, T>) => R

    A callback used to create a result for a page. Subquery

    Returns
    Iterable<R>

    pageBy(source, pageSize)

    Creates an Iterable that splits an Iterable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

    Declaration
    export declare function pageBy<T>(source: Iterable<T>, pageSize: number): Iterable<Page<T>>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    pageSize
    number

    The number of elements per page. Subquery

    Returns
    Iterable<Page<T>>

    pageBy(source, pageSize, pageSelector)

    Creates an Iterable that splits an Iterable into one or more pages. While advancing from page to page is evaluated lazily, the elements of the page are evaluated eagerly.

    Declaration
    export declare function pageBy<T, R>(source: Iterable<T>, pageSize: number, pageSelector: (page: number, offset: number, values: Iterable<T>) => R): Iterable<R>;
    Type Parameters
    T

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    pageSize
    number

    The number of elements per page.

    pageSelector
    (page: number, offset: number, values: Iterable<T>) => R

    A callback used to create a result for a page. Subquery

    Returns
    Iterable<R>

    parents(source, predicate)

    Selects the parent of each node in the iterable. This is equivalent to the parent::* or .. selectors in XPath. Hierarchy

    Declaration
    export declare function parents<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    parents(source, predicate)

    Declaration
    export declare function parents<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    patch(source, start, skipCount, range)

    Creates an Iterable for the elements of source with the provided range patched into the results.

    Declaration
    export declare function patch<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, start: number, skipCount?: number, range?: Iterable<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    The Iterable to patch.

    start
    number

    The offset at which to patch the range.

    skipCount
    number

    The number of elements to skip from start.

    range
    Iterable<T>

    The range to patch into the result. Subquery

    Returns
    HierarchyIterable<TNode, T>

    patch(source, start, skipCount, range)

    Creates an Iterable for the elements of source with the provided range patched into the results.

    Declaration
    export declare function patch<T>(source: Iterable<T>, start: number, skipCount?: number, range?: Iterable<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    The Iterable to patch.

    start
    number

    The offset at which to patch the range.

    skipCount
    number

    The number of elements to skip from start.

    range
    Iterable<T>

    The range to patch into the result. Subquery

    Returns
    Iterable<T>

    preceding(source, predicate)

    Selects the nodes that precede each node in the iterable. This is equivalent to the preceding::** selector in XPath. Hierarchy

    Declaration
    export declare function preceding<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    preceding(source, predicate)

    Declaration
    export declare function preceding<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    precedingSiblings(source, predicate)

    Selects the siblings that precede each node in the iterable. This is equivalent to the preceding-sibling::** selector in XPath. Hierarchy

    Declaration
    export declare function precedingSiblings<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    precedingSiblings(source, predicate)

    Declaration
    export declare function precedingSiblings<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    prepend(source, value)

    Creates a subquery for the elements of the source with the provided value prepended to the beginning.

    Declaration
    export declare function prepend<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, value: T): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    value
    T

    The value to prepend. Subquery

    Returns
    HierarchyIterable<TNode, T>

    prepend(source, value)

    Creates a subquery for the elements of the source with the provided value prepended to the beginning.

    Declaration
    export declare function prepend<T>(source: Iterable<T>, value: T): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    value
    T

    The value to prepend. Subquery

    Returns
    Iterable<T>

    range(start, end, increment)

    Creates an Iterable over a range of numbers.

    Declaration
    export declare function range(start: number, end: number, increment?: number): Iterable<number>;
    Parameters
    start
    number

    The starting number of the range.

    end
    number

    The ending number of the range.

    increment
    number

    The amount by which to change between each itereated value. Query

    Returns
    Iterable<number>

    reduce(source, accumulator)

    Computes a scalar value by applying an accumulator callback over each element.

    Declaration
    export declare function reduce<T>(source: Iterable<T>, accumulator: (current: T, element: T, offset: number) => T): T;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: T, element: T, offset: number) => T

    the callback used to compute the result. Scalar

    Returns
    T

    reduce(source, accumulator, seed, resultSelector)

    Computes a scalar value by applying an accumulator callback over each element.

    Declaration
    export declare function reduce<T, U>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U, resultSelector?: (result: U, count: number) => U): U;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    the callback used to compute the result.

    seed
    U

    An optional seed value. Scalar

    resultSelector
    (result: U, count: number) => U

    Returns
    U

    reduce(source, accumulator, seed, resultSelector)

    Computes a scalar value by applying an accumulator callback over each element.

    Declaration
    export declare function reduce<T, U, R>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U, resultSelector: (result: U, count: number) => R): R;
    Type Parameters
    T

    U

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    the callback used to compute the result.

    seed
    U

    An optional seed value.

    resultSelector
    (result: U, count: number) => R

    An optional callback used to compute the final result. Scalar

    Returns
    R

    reduceRight(source, accumulator)

    Computes a scalar value by applying an accumulator callback over each element in reverse.

    Declaration
    export declare function reduceRight<T>(source: Iterable<T>, accumulator: (current: T, element: T, offset: number) => T): T;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: T, element: T, offset: number) => T

    the callback used to compute the result. Scalar

    Returns
    T

    reduceRight(source, accumulator, seed, resultSelector)

    Computes a scalar value by applying an accumulator callback over each element in reverse.

    Declaration
    export declare function reduceRight<T, U>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U, resultSelector?: (result: U, count: number) => U): U;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    the callback used to compute the result.

    seed
    U

    An optional seed value. Scalar

    resultSelector
    (result: U, count: number) => U

    Returns
    U

    reduceRight(source, accumulator, seed, resultSelector)

    Computes a scalar value by applying an accumulator callback over each element in reverse.

    Declaration
    export declare function reduceRight<T, U, R>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U, resultSelector: (result: U, count: number) => R): R;
    Type Parameters
    T

    U

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    the callback used to compute the result.

    seed
    U

    An optional seed value.

    resultSelector
    (result: U, count: number) => R

    An optional callback used to compute the final result. Scalar

    Returns
    R

    repeat(value, count)

    Creates an Iterable for a value repeated a provided number of times.

    Declaration
    export declare function repeat<T>(value: T, count: number): Iterable<T>;
    Type Parameters
    T

    Parameters
    value
    T

    The value for each element of the Iterable.

    count
    number

    The number of times to repeat the value. Query

    Returns
    Iterable<T>

    reverse(source)

    Creates a subquery whose elements are in the reverse order. Ordering

    Declaration
    export declare function reverse<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    Returns
    HierarchyIterable<TNode, T>

    reverse(source)

    Creates a subquery whose elements are in the reverse order. Ordering

    Declaration
    export declare function reverse<T>(source: Iterable<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    Returns
    Iterable<T>

    root(source, predicate)

    Selects the root element of each node in the iterable. This is equivalent to the / selector in XPath, or the :root selector in CSS. Hierarchy

    Declaration
    export declare function root<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    root(source, predicate)

    Declaration
    export declare function root<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    scan(source, accumulator)

    Creates a subquery containing the cumulative results of applying the provided callback to each element.

    Declaration
    export declare function scan<T>(source: Iterable<T>, accumulator: (current: T, element: T, offset: number) => T): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: T, element: T, offset: number) => T

    The callback used to compute each result. Subquery

    Returns
    Iterable<T>

    scan(source, accumulator, seed)

    Creates a subquery containing the cumulative results of applying the provided callback to each element.

    Declaration
    export declare function scan<T, U>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    The callback used to compute each result.

    seed
    U

    An optional seed value. Subquery

    Returns
    Iterable<U>

    scanRight(source, accumulator)

    Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

    Declaration
    export declare function scanRight<T>(source: Iterable<T>, accumulator: (current: T, element: T, offset: number) => T): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: T, element: T, offset: number) => T

    The callback used to compute each result. Subquery

    Returns
    Iterable<T>

    scanRight(source, accumulator, seed)

    Creates a subquery containing the cumulative results of applying the provided callback to each element in reverse.

    Declaration
    export declare function scanRight<T, U>(source: Iterable<T>, accumulator: (current: U, element: T, offset: number) => U, seed: U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    accumulator
    (current: U, element: T, offset: number) => U

    The callback used to compute each result.

    seed
    U

    An optional seed value. Subquery

    Returns
    Iterable<U>

    self(source, predicate)

    Selects each node in the iterable. This is equivalent to the self::* or . selectors in XPath. Hierarchy

    Declaration
    export declare function self<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    predicate
    (element: T) => element is U

    Returns
    HierarchyIterable<TNode, U>

    self(source, predicate)

    Declaration
    export declare function self<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate?: (element: T) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    predicate
    (element: T) => boolean

    Returns
    HierarchyIterable<TNode, T>

    siblings(source, predicate)

    Selects the siblings of each node in the iterable, excluding the node itself. Hierarchy

    Declaration
    export declare function siblings<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    siblings(source, predicate)

    Declaration
    export declare function siblings<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    siblingsAndSelf(source, predicate)

    Selects the siblings of each node in the iterable, including the node itself. This equivalent to the ../* selector in XPath. Hierarchy

    Declaration
    export declare function siblingsAndSelf<TNode, U extends TNode>(source: HierarchyIterable<TNode>, predicate: (element: TNode) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    U

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => element is U

    Returns
    HierarchyIterable<TNode, U>

    siblingsAndSelf(source, predicate)

    Declaration
    export declare function siblingsAndSelf<TNode>(source: HierarchyIterable<TNode>, predicate?: (element: TNode) => boolean): HierarchyIterable<TNode>;
    Type Parameters
    TNode

    Parameters
    source
    HierarchyIterable<TNode>

    predicate
    (element: TNode) => boolean

    Returns
    HierarchyIterable<TNode>

    single(source, predicate)

    Gets the only element, or returns undefined.

    Declaration
    export declare function single<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): U | undefined;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    An optional callback used to match each element. Scalar

    Returns
    U | undefined

    single(source, predicate)

    Gets the only element, or returns undefined.

    Declaration
    export declare function single<T>(source: Iterable<T>, predicate?: (element: T) => boolean): T | undefined;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    An optional callback used to match each element. Scalar

    Returns
    T | undefined

    some(source, predicate)

    Computes a scalar value indicating whether source contains any elements, optionally filtering the elements using the supplied callback.

    Declaration
    export declare function some<T>(source: Iterable<T>, predicate?: (element: T) => boolean): boolean;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    An optional callback used to match each element. Scalar

    Returns
    boolean

    span(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function span<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => element is U): [HierarchyIterable<TNode, U>, HierarchyIterable<TNode, T>];
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    The predicate used to match elements. Scalar

    Returns
    [HierarchyIterable<TNode, U>, HierarchyIterable<TNode, T>]

    span(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function span<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T, offset: number) => boolean): [HierarchyIterable<TNode, T>, HierarchyIterable<TNode, T>];
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    The predicate used to match elements. Scalar

    Returns
    [HierarchyIterable<TNode, T>, HierarchyIterable<TNode, T>]

    span(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function span<T, U extends T>(source: Iterable<T>, predicate: (element: T, offset: number) => element is U): [Iterable<U>, Iterable<T>];
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => element is U

    The predicate used to match elements. Scalar

    Returns
    [Iterable<U>, Iterable<T>]

    span(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function span<T>(source: Iterable<T>, predicate: (element: T, offset: number) => boolean): [Iterable<T>, Iterable<T>];
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    The predicate used to match elements. Scalar

    Returns
    [Iterable<T>, Iterable<T>]

    spanMap(source, keySelector, keyEqualer)

    Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

    Declaration
    export declare function spanMap<TNode, T extends TNode, K>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<HierarchyGrouping<K, TNode, T>>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyEqualer
    Equaler<K>

    An Equaler used to compare key equality. Grouping

    Returns
    Iterable<HierarchyGrouping<K, TNode, T>>

    spanMap(source, keySelector, elementSelector, spanSelector, keyEqualer)

    Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

    Declaration
    export declare function spanMap<TNode, T extends TNode, K, R>(source: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, elementSelector: undefined, spanSelector: (key: K, elements: HierarchyIterable<TNode, T>) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    TNode

    T

    K

    R

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    undefined

    A callback used to select a value for an element.

    spanSelector
    (key: K, elements: HierarchyIterable<TNode, T>) => R

    A callback used to select a result from a contiguous range.

    keyEqualer
    Equaler<K>

    An Equaler used to compare key equality. Grouping

    Returns
    Iterable<R>

    spanMap(source, keySelector, keyEqualer)

    Creates a subquery whose elements are the contiguous ranges of elements that share the same key.

    Declaration
    export declare function spanMap<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<Grouping<K, T>>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyEqualer
    Equaler<K>

    An Equaler used to compare key equality. Grouping

    Returns
    Iterable<Grouping<K, T>>

    spanMap(source, keySelector, elementSelector, keyEqualer)

    Creates a subquery whose values are computed from each element of the contiguous ranges of elements that share the same key.

    Declaration
    export declare function spanMap<T, K, V>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, keyEqualer?: Equaler<K>): Iterable<Grouping<K, V>>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    (element: T) => V

    A callback used to select a value for an element.

    keyEqualer
    Equaler<K>

    An Equaler used to compare key equality. Grouping

    Returns
    Iterable<Grouping<K, V>>

    spanMap(source, keySelector, elementSelector, spanSelector, keyEqualer)

    Creates a subquery whose values are computed from the contiguous ranges of elements that share the same key.

    Declaration
    export declare function spanMap<T, K, V, R>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, spanSelector: (key: K, elements: Iterable<V>) => R, keyEqualer?: Equaler<K>): Iterable<R>;
    Type Parameters
    T

    K

    V

    R

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    elementSelector
    (element: T) => V

    A callback used to select a value for an element.

    spanSelector
    (key: K, elements: Iterable<V>) => R

    A callback used to select a result from a contiguous range.

    keyEqualer
    Equaler<K>

    An Equaler used to compare key equality. Grouping

    Returns
    Iterable<R>

    spanUntil(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that do not match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function spanUntil<T>(source: HierarchyIterable<T>, predicate: (element: T, offset: number) => boolean): [HierarchyIterable<T>, HierarchyIterable<T>];
    Type Parameters
    T

    Parameters
    source
    HierarchyIterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    The predicate used to match elements. Scalar

    Returns
    [HierarchyIterable<T>, HierarchyIterable<T>]

    spanUntil(source, predicate)

    Creates a tuple whose first element is an Iterable containing the first span of elements that do not match the supplied predicate, and whose second element is an Iterable containing the remaining elements.

    The first Iterable is eagerly evaluated, while the second Iterable is lazily evaluated.

    Declaration
    export declare function spanUntil<T>(source: Iterable<T>, predicate: (element: T, offset: number) => boolean): [Iterable<T>, Iterable<T>];
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T, offset: number) => boolean

    The predicate used to match elements. Scalar

    Returns
    [Iterable<T>, Iterable<T>]

    startsWith(left, right, equaler)

    Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Iterable.

    Declaration
    export declare function startsWith<T>(left: Iterable<T>, right: Iterable<T>, equaler?: EqualityComparison<T> | Equaler<T>): boolean;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    EqualityComparison<T> | Equaler<T>

    A callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    startsWith(left, right, equaler)

    Computes a scalar value indicating whether the elements of this Query start with the same sequence of elements in another Iterable.

    Declaration
    export declare function startsWith<T, U>(left: Iterable<T>, right: Iterable<U>, equaler: (left: T, right: U) => boolean): boolean;
    Type Parameters
    T

    U

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<U>

    An Iterable object.

    equaler
    (left: T, right: U) => boolean

    A callback used to compare the equality of two elements. Scalar

    Returns
    boolean

    sum(source)

    Computes the sum for a series of numbers.

    Declaration
    export declare function sum(source: Iterable<number>): number;
    Parameters
    source
    Iterable<number>

    An Iterable object. Scalar

    Returns
    number

    sum(source, elementSelector)

    Computes the sum for a series of numbers.

    Declaration
    export declare function sum<T>(source: Iterable<T>, elementSelector: (element: T) => number): number;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    elementSelector
    (element: T) => number

    A callback used to convert a value in source to a number. Scalar

    Returns
    number

    symmetricDifference(left, right, equaler)

    Creates a subquery for the symmetric difference between two Iterable objects. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifference<TNode, T extends TNode>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    symmetricDifference(left, right, equaler)

    Creates a subquery for the symmetric difference between two Iterable objects. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifference<TNode, T extends TNode>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    HierarchyIterable<TNode, T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    symmetricDifference(left, right, equaler)

    Creates a subquery for the symmetric difference between two Iterable objects. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifference<T>(left: Iterable<T>, right: Iterable<T>, equaler?: Equaler<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    Iterable<T>

    symmetricDifferenceBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the symmetric difference between two Iterable objects, where set identity is determined by the selected key. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifferenceBy<TNode, T extends TNode, K>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    HierarchyIterable<TNode, T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    symmetricDifferenceBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the symmetric difference between two Iterable objects, where set identity is determined by the selected key. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifferenceBy<TNode, T extends TNode, K>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    HierarchyIterable<TNode, T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    symmetricDifferenceBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the symmetric difference between two Iterable objects, where set identity is determined by the selected key. The result is an Iterable containings the elements that exist in only left or right, but not in both.

    Declaration
    export declare function symmetricDifferenceBy<T, K>(left: Iterable<T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    left
    Iterable<T>

    An Iterable object.

    right
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<T>

    take(source, count)

    Creates a subquery containing the first elements up to the supplied count.

    Declaration
    export declare function take<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    count
    number

    The number of elements to take. Subquery

    Returns
    HierarchyIterable<TNode, T>

    take(source, count)

    Creates a subquery containing the first elements up to the supplied count.

    Declaration
    export declare function take<T>(source: Iterable<T>, count: number): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    count
    number

    The number of elements to take. Subquery

    Returns
    Iterable<T>

    takeRight(source, count)

    Creates a subquery containing the last elements up to the supplied count.

    Declaration
    export declare function takeRight<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, count: number): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    count
    number

    The number of elements to take. Subquery

    Returns
    HierarchyIterable<TNode, T>

    takeRight(source, count)

    Creates a subquery containing the last elements up to the supplied count.

    Declaration
    export declare function takeRight<T>(source: Iterable<T>, count: number): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    count
    number

    The number of elements to take. Subquery

    Returns
    Iterable<T>

    takeUntil(source, predicate)

    Creates a subquery containing the first elements that do not match the supplied predicate.

    Declaration
    export declare function takeUntil<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => element is U

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, U>

    takeUntil(source, predicate)

    Creates a subquery containing the first elements that do not match the supplied predicate.

    Declaration
    export declare function takeUntil<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    A callback used to match each element. Subquery

    Returns
    Iterable<U>

    takeUntil(source, predicate)

    Creates a subquery containing the first elements that do not match the supplied predicate.

    Declaration
    export declare function takeUntil<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    takeUntil(source, predicate)

    Creates a subquery containing the first elements that do not match the supplied predicate.

    Declaration
    export declare function takeUntil<T>(source: Iterable<T>, predicate: (element: T) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    takeWhile(source, predicate)

    Creates a subquery containing the first elements that match the supplied predicate.

    Declaration
    export declare function takeWhile<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => element is U): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => element is U

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, U>

    takeWhile(source, predicate)

    Creates a subquery containing the first elements that match the supplied predicate.

    Declaration
    export declare function takeWhile<T, U extends T>(source: Iterable<T>, predicate: (element: T) => element is U): Iterable<U>;
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => element is U

    A callback used to match each element. Subquery

    Returns
    Iterable<U>

    takeWhile(source, predicate)

    Creates a subquery containing the first elements that match the supplied predicate.

    Declaration
    export declare function takeWhile<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate: (element: T) => boolean): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    HierarchyIterable<TNode, T>

    takeWhile(source, predicate)

    Creates a subquery containing the first elements that match the supplied predicate.

    Declaration
    export declare function takeWhile<T>(source: Iterable<T>, predicate: (element: T) => boolean): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    predicate
    (element: T) => boolean

    A callback used to match each element. Subquery

    Returns
    Iterable<T>

    tap(source, callback)

    Lazily invokes a callback as each element of the iterable is iterated.

    Declaration
    export declare function tap<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, callback: (element: T, offset: number) => void): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    A Iterable object.

    callback
    (element: T, offset: number) => void

    The callback to invoke. Subquery

    Returns
    HierarchyIterable<TNode, T>

    tap(source, callback)

    Lazily invokes a callback as each element of the iterable is iterated.

    Declaration
    export declare function tap<T>(source: Iterable<T>, callback: (element: T, offset: number) => void): Iterable<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    A Iterable object.

    callback
    (element: T, offset: number) => void

    The callback to invoke. Subquery

    Returns
    Iterable<T>

    thenBy(source, keySelector, keyComparer)

    Creates a subsequent OrderedIterable whose elements are also sorted in ascending order by the provided key.

    Declaration
    export declare function thenBy<TNode, T extends TNode, K>(source: OrderedHierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    OrderedHierarchyIterable<TNode, T>

    An OrderedIterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedHierarchyIterable<TNode, T>

    thenBy(source, keySelector, keyComparer)

    Creates a subsequent OrderedIterable whose elements are also sorted in ascending order by the provided key.

    Declaration
    export declare function thenBy<T, K>(source: OrderedIterable<T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    OrderedIterable<T>

    An OrderedIterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedIterable<T>

    thenByDescending(source, keySelector, keyComparer)

    Creates a subsequent OrderedIterable whose elements are also sorted in descending order by the provided key.

    Declaration
    export declare function thenByDescending<TNode, T extends TNode, K>(source: OrderedHierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedHierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    source
    OrderedHierarchyIterable<TNode, T>

    An OrderedIterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedHierarchyIterable<TNode, T>

    thenByDescending(source, keySelector, keyComparer)

    Creates a subsequent OrderedIterable whose elements are also sorted in descending order by the provided key.

    Declaration
    export declare function thenByDescending<T, K>(source: OrderedIterable<T>, keySelector: (element: T) => K, keyComparer?: Comparison<K> | Comparer<K>): OrderedIterable<T>;
    Type Parameters
    T

    K

    Parameters
    source
    OrderedIterable<T>

    An OrderedIterable object.

    keySelector
    (element: T) => K

    A callback used to select the key for an element.

    keyComparer
    Comparison<K> | Comparer<K>

    An optional callback used to compare two keys. Order

    Returns
    OrderedIterable<T>

    toArray(source)

    Creates an Array for the elements of the Iterable.

    Declaration
    export declare function toArray<T>(source: Iterable<T>): T[];
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object. Scalar

    Returns
    T[]

    toArray(source, elementSelector)

    Creates an Array for the elements of the Iterable.

    Declaration
    export declare function toArray<T, V>(source: Iterable<T>, elementSelector: (element: T) => V): V[];
    Type Parameters
    T

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element. Scalar

    Returns
    V[]

    toHashMap(source, keySelector, keyEqualer)

    Creates a HashMap for the elements of the Query.

    Declaration
    export declare function toHashMap<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HashMap<K, T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Scalar

    Returns
    HashMap<K, T>

    toHashMap(source, keySelector, elementSelector, keyEqualer)

    Creates a Map for the elements of the Query.

    Declaration
    export declare function toHashMap<T, K, V>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, keyEqualer?: Equaler<K>): HashMap<K, V>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Scalar

    Returns
    HashMap<K, V>

    toHashSet(source, equaler)

    Creates a HashSet for the elements of the Iterable.

    Declaration
    export declare function toHashSet<T>(source: Iterable<T>, equaler?: Equaler<T>): HashSet<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Scalar

    Returns
    HashSet<T>

    toHashSet(source, elementSelector, equaler)

    Creates a Set for the elements of the Iterable.

    Declaration
    export declare function toHashSet<T, V>(source: Iterable<T>, elementSelector: (element: T) => V, equaler?: Equaler<V>): HashSet<V>;
    Type Parameters
    T

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    equaler
    Equaler<V>

    An Equaler object used to compare equality. Scalar

    Returns
    HashSet<V>

    toHierarchy(iterable, provider)

    Creates a HierarchyIterable using the provided HierarchyProvider.

    Declaration
    export declare function toHierarchy<TNode, T extends TNode = TNode>(iterable: OrderedIterable<T>, provider: HierarchyProvider<TNode>): OrderedHierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    iterable
    OrderedIterable<T>

    provider
    HierarchyProvider<TNode>

    Returns
    OrderedHierarchyIterable<TNode, T>

    toHierarchy(iterable, provider)

    Declaration
    export declare function toHierarchy<TNode, T extends TNode = TNode>(iterable: Iterable<T>, provider: HierarchyProvider<TNode>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    iterable
    Iterable<T>

    provider
    HierarchyProvider<TNode>

    Returns
    HierarchyIterable<TNode, T>

    toLookup(source, keySelector, keyEqualer)

    Creates a Lookup for the elements of the Query.

    Declaration
    export declare function toLookup<T, K>(source: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Lookup<K, T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Scalar

    Returns
    Lookup<K, T>

    toLookup(source, keySelector, elementSelector, keyEqualer)

    Creates a Lookup for the elements of the Query.

    Declaration
    export declare function toLookup<T, K, V>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V, keyEqualer?: Equaler<K>): Lookup<K, V>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Scalar

    Returns
    Lookup<K, V>

    toMap(source, keySelector)

    Creates a Map for the elements of the Query.

    Declaration
    export declare function toMap<T, K>(source: Iterable<T>, keySelector: (element: T) => K): Map<K, T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element. Scalar

    Returns
    Map<K, T>

    toMap(source, keySelector, elementSelector)

    Creates a Map for the elements of the Query.

    Declaration
    export declare function toMap<T, K, V>(source: Iterable<T>, keySelector: (element: T) => K, elementSelector: (element: T) => V): Map<K, V>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element. Scalar

    Returns
    Map<K, V>

    toObject(source, prototype, keySelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    obj.toString(); // "x",1:"y",2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, TProto extends object, K extends PropertyKey>(source: Iterable<T>, prototype: TProto, keySelector: (element: T) => K): TProto & Record<K, T>;
    Type Parameters
    T

    TProto

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    TProto

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => K

    A callback used to select a key for each element. Scalar

    Returns
    TProto & Record<K, T>

    toObject(source, prototype, keySelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    obj.toString(); // "x",1:"y",2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, TProto extends object>(source: Iterable<T>, prototype: TProto, keySelector: (element: T) => PropertyKey): TProto & Record<PropertyKey, T>;
    Type Parameters
    T

    TProto

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    TProto

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => PropertyKey

    A callback used to select a key for each element. Scalar

    Returns
    TProto & Record<PropertyKey, T>

    toObject(source, prototype, keySelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    obj.toString(); // "x",1:"y",2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, K extends PropertyKey>(source: Iterable<T>, prototype: object | null | undefined, keySelector: (element: T) => K): Record<K, T>;
    Type Parameters
    T

    K

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    object | null | undefined

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => K

    A callback used to select a key for each element. Scalar

    Returns
    Record<K, T>

    toObject(source, prototype, keySelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // function
    obj.toString(); // "x",1:"y",2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0]);
    obj.x; // ["x", 1]
    obj.y; // ["y", 2]
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T>(source: Iterable<T>, prototype: object | null | undefined, keySelector: (element: T) => PropertyKey): Record<PropertyKey, T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    object | null | undefined

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => PropertyKey

    A callback used to select a key for each element. Scalar

    Returns
    Record<PropertyKey, T>

    toObject(source, prototype, keySelector, elementSelector, descriptorSelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    obj.toString(); // 1:2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, TProto extends object, K extends PropertyKey, V>(source: Iterable<T>, prototype: TProto, keySelector: (element: T) => K, elementSelector: (element: T) => V, descriptorSelector?: (key: K, value: V) => TypedPropertyDescriptor<V>): TProto & Record<K, V>;
    Type Parameters
    T

    TProto

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    TProto

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    descriptorSelector
    (key: K, value: V) => TypedPropertyDescriptor<V>

    A callback that defines the PropertyDescriptor for each property. Scalar

    Returns
    TProto & Record<K, V>

    toObject(source, prototype, keySelector, elementSelector, descriptorSelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    obj.toString(); // 1:2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, TProto extends object, V>(source: Iterable<T>, prototype: TProto, keySelector: (element: T) => PropertyKey, elementSelector: (element: T) => V, descriptorSelector?: (key: PropertyKey, value: V) => TypedPropertyDescriptor<V>): TProto & Record<PropertyKey, V>;
    Type Parameters
    T

    TProto

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    TProto

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => PropertyKey

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    descriptorSelector
    (key: PropertyKey, value: V) => TypedPropertyDescriptor<V>

    A callback that defines the PropertyDescriptor for each property. Scalar

    Returns
    TProto & Record<PropertyKey, V>

    toObject(source, prototype, keySelector, elementSelector, descriptorSelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    obj.toString(); // 1:2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, K extends PropertyKey, V>(source: Iterable<T>, prototype: object | null | undefined, keySelector: (element: T) => K, elementSelector: (element: T) => V, descriptorSelector?: (key: K, value: V) => TypedPropertyDescriptor<V>): Record<K, V>;
    Type Parameters
    T

    K

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    object | null | undefined

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => K

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    descriptorSelector
    (key: K, value: V) => TypedPropertyDescriptor<V>

    A callback that defines the PropertyDescriptor for each property. Scalar

    Returns
    Record<K, V>

    toObject(source, prototype, keySelector, elementSelector, descriptorSelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    obj.toString(); // 1:2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, V>(source: Iterable<T>, prototype: object | null | undefined, keySelector: (element: T) => PropertyKey, elementSelector: (element: T) => V, descriptorSelector?: (key: PropertyKey, value: V) => TypedPropertyDescriptor<V>): Record<PropertyKey, V>;
    Type Parameters
    T

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    object | null | undefined

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => PropertyKey

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    descriptorSelector
    (key: PropertyKey, value: V) => TypedPropertyDescriptor<V>

    A callback that defines the PropertyDescriptor for each property. Scalar

    Returns
    Record<PropertyKey, V>

    toObject(source, prototype, keySelector, elementSelector, descriptorSelector)

    Creates an Object for the elements of source. Properties are added via Object.defineProperty.

    // As a regular object
    const obj = toObject(`"`, 1], ["y", 2]], undefined, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    
    // with a custom prototype
    const baseObject = { toString() { return `${this.x}:${this.y}` } };
    const obj = toObject(`"`, 1], ["y", 2]], baseObject, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // function
    obj.toString(); // 1:2
    
    // with a null prototype
    const obj = toObject(`"`, 1], ["y", 2]], null, a => a[0], a => a[1]);
    obj.x; // 1
    obj.y; // 2
    typeof obj.toString; // undefined
    
    Declaration
    export declare function toObject<T, V>(source: Iterable<T>, prototype: object | null | undefined, keySelector: (element: T) => PropertyKey, elementSelector: (element: T) => V, descriptorSelector?: (key: PropertyKey, value: V) => PropertyDescriptor): object;
    Type Parameters
    T

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    prototype
    object | null | undefined

    The prototype for the object. If prototype is null, an object with a null prototype is created. If prototype is undefined, the default Object.prototype is used.

    keySelector
    (element: T) => PropertyKey

    A callback used to select a key for each element.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element.

    descriptorSelector
    (key: PropertyKey, value: V) => PropertyDescriptor

    A callback that defines the PropertyDescriptor for each property. Scalar

    Returns
    object

    topMost(source, predicate, equaler)

    Filters a HierarchyIterable to the top-most elements. Elements that are a descendant of any other element in the iterable are removed.

    Declaration
    export declare function topMost<TNode, T extends TNode, U extends T>(source: HierarchyIterable<TNode, T>, predicate: (value: T) => value is U, equaler?: Equaler<TNode>): HierarchyIterable<TNode, U>;
    Type Parameters
    TNode

    T

    U

    Parameters
    source
    HierarchyIterable<TNode, T>

    A HierarchyIterable object.

    predicate
    (value: T) => value is U

    An optional callback used to filter the results.

    equaler
    Equaler<TNode>

    An optional Equaler used to compare equality between nodes. Hierarchy

    Returns
    HierarchyIterable<TNode, U>

    topMost(source, predicate, equaler)

    Creates a HierarchyIterable for the top-most elements. Elements that are a descendant of any other element are removed.

    Declaration
    export declare function topMost<TNode, T extends TNode>(source: HierarchyIterable<TNode, T>, predicate?: (value: T) => boolean, equaler?: Equaler<TNode>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    source
    HierarchyIterable<TNode, T>

    A HierarchyIterable object.

    predicate
    (value: T) => boolean

    An optional callback used to filter the results.

    equaler
    Equaler<TNode>

    An optional Equaler used to compare equality between nodes. Hierarchy

    Returns
    HierarchyIterable<TNode, T>

    toSet(source)

    Creates a Set for the elements of the Iterable.

    Declaration
    export declare function toSet<T>(source: Iterable<T>): Set<T>;
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    An Iterable object. Scalar

    Returns
    Set<T>

    toSet(source, elementSelector)

    Creates a Set for the elements of the Iterable.

    Declaration
    export declare function toSet<T, V>(source: Iterable<T>, elementSelector: (element: T) => V): Set<V>;
    Type Parameters
    T

    V

    Parameters
    source
    Iterable<T>

    An Iterable object.

    elementSelector
    (element: T) => V

    A callback that selects a value for each element. Scalar

    Returns
    Set<V>

    union(left, right, equaler)

    Creates a subquery for the set union of two Iterable objects.

    Declaration
    export declare function union<TNode, T extends TNode>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    HierarchyIterable<TNode, T>

    A Iterable value.

    right
    Iterable<T>

    A Iterable value.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    union(left, right, equaler)

    Creates a subquery for the set union of two Iterable objects.

    Declaration
    export declare function union<TNode, T extends TNode>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, equaler?: Equaler<T>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    Parameters
    left
    Iterable<T>

    A Iterable value.

    right
    HierarchyIterable<TNode, T>

    A Iterable value.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    union(left, right, equaler)

    Creates a subquery for the set union of two Iterable objects.

    Declaration
    export declare function union<T>(left: Iterable<T>, right: Iterable<T>, equaler?: Equaler<T>): Iterable<T>;
    Type Parameters
    T

    Parameters
    left
    Iterable<T>

    A Iterable value.

    right
    Iterable<T>

    A Iterable value.

    equaler
    Equaler<T>

    An Equaler object used to compare equality. Subquery

    Returns
    Iterable<T>

    unionBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the set union of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function unionBy<TNode, T extends TNode, K>(left: HierarchyIterable<TNode, T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    HierarchyIterable<TNode, T>

    A Iterable value.

    right
    Iterable<T>

    A Iterable value.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    unionBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the set union of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function unionBy<TNode, T extends TNode, K>(left: Iterable<T>, right: HierarchyIterable<TNode, T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): HierarchyIterable<TNode, T>;
    Type Parameters
    TNode

    T

    K

    Parameters
    left
    Iterable<T>

    A Iterable value.

    right
    HierarchyIterable<TNode, T>

    A Iterable value.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    HierarchyIterable<TNode, T>

    unionBy(left, right, keySelector, keyEqualer)

    Creates a subquery for the set union of two Iterable objects, where set identity is determined by the selected key.

    Declaration
    export declare function unionBy<T, K>(left: Iterable<T>, right: Iterable<T>, keySelector: (element: T) => K, keyEqualer?: Equaler<K>): Iterable<T>;
    Type Parameters
    T

    K

    Parameters
    left
    Iterable<T>

    A Iterable value.

    right
    Iterable<T>

    A Iterable value.

    keySelector
    (element: T) => K

    A callback used to select the key for each element.

    keyEqualer
    Equaler<K>

    An Equaler object used to compare key equality. Subquery

    Returns
    Iterable<T>

    unzip(source)

    Unzips a sequence of tuples into a tuple of sequences.

    Declaration
    export declare function unzip<T extends readonly any[] | []>(source: Iterable<T>): {
        [I in keyof T]: T[I][];
    };
    Type Parameters
    T

    Parameters
    source
    Iterable<T>

    A Iterable Scalar

    Returns
    { [I in keyof T]: T[I][]; }

    unzip(source, partSelector)

    Unzips a sequence of tuples into a tuple of sequences.

    Declaration
    export declare function unzip<T, U extends readonly any[] | []>(source: Iterable<T>, partSelector: (value: T) => U): {
        [I in keyof U]: U[I][];
    };
    Type Parameters
    T

    U

    Parameters
    source
    Iterable<T>

    A Iterable

    partSelector
    (value: T) => U

    A callback that converts a result into a tuple. Scalar

    Returns
    { [I in keyof U]: U[I][]; }

    zip(left, right)

    Creates a subquery that combines two Iterable objects by combining elements in tuples.

    Declaration
    export declare function zip<T, U>(left: Iterable<T>, right: Iterable<U>): Iterable<[T, U]>;
    Type Parameters
    T

    U

    Parameters
    left
    Iterable<T>

    A Iterable.

    right
    Iterable<U>

    A Iterable. Join

    Returns
    Iterable<[T, U]>

    zip(left, right, selector)

    Creates a subquery that combines two Iterable objects by combining elements using the supplied callback.

    Declaration
    export declare function zip<T, U, R>(left: Iterable<T>, right: Iterable<U>, selector: (left: T, right: U) => R): Iterable<R>;
    Type Parameters
    T

    U

    R

    Parameters
    left
    Iterable<T>

    A Iterable.

    right
    Iterable<U>

    A Iterable.

    selector
    (left: T, right: U) => R

    A callback used to combine two elements. Join

    Returns
    Iterable<R>

    • Improve this Doc
    Generated by DocFX