(p: P, obj: T): T[P]; + prop
(p: P): ) => T;
+ prop (p: P): (obj: Record ) => T;
+
+ /**
+ * Takes a desired property from an object and compares the value against a provided value to make sure they're equal
+ */
+ propEq (key: P, val: T, obj: Record ): boolean;
+ propEq (key: P, val: T): (obj: Record ) => boolean;
+ propEq (key: P): ) => boolean;
+
+ /**
+ * If the provided object contains it's own property with the specified name, that value is returned. Otherwise it will return the provided default value
+ */
+ propOr (def: T, key: P, obj: Record ): U | T
+ propOr (def: T, key: P): (obj: Record ) => U | T
+ propOr (key: P) => (obj: Record ) => U | T
+
+ /**
+ * Pulls a list of values from an object and returns them as an array
+ */
+ props (keys: ReadonlyArray , obj: Record ): T[];
+ props (keys: ReadonlyArray ): ) => T[];
+ props (keys: ReadonlyArray ): (obj: Record ) => T[];
+
+ /**
+ * Creates an array of numbers ranging from the starting number (inclusive) to the ending number (exclusive)
+ */
+ range(from: number, tp: number): number[];
+ range(from: number): (to: number) => number[];
+
+ /**
+ * Accepts an array and runs a reduce with the passed in values.
+ * The reducer function accepts the params flipped as compared
+ * To the vanilla reduce counterpart.
+ */
+ reduce