All files / src/interfaces/DataType IComparable.ts

0% Statements 0/2
0% Branches 0/3
0% Functions 0/1
0% Lines 0/2

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27                                                     
/**
 * Interface for comparable objects.
 */
export interface IComparable<T> {
    /**
     * Compares this object to another object.
     * @param other The other object to compare.
     * @returns A number indicating the order of the objects.
     * E.g. -1 if this object is less than the other object,
     * 0 if they are equal, and 1 if this object is greater than the other object.
     */
    compareTo(other: T): number;
}
 
/**
 * Checks if the object is an {@link IComparable}.
 * @param obj The object to check.
 * @returns Whether the object is an {@link IComparable}.
 */
export function isIComparable(obj: unknown): obj is IComparable<unknown> {
    return (
        obj != null &&
        typeof obj === 'object' &&
        typeof (obj as IComparable<unknown>).compareTo === 'function'
    );
}
 
Zur TypeDoc-Dokumentation