@ce1pers/array-helpers
Version:
Included simple array helpers.
43 lines (42 loc) • 1.3 kB
TypeScript
/**
* @typedef ObjectArraySorterInput
* @property {Array} array
* @property {string} sortBy
* @property {"string"|"number"|"bigint"|"boolean"|"symbol"|"undefined"|"object"|"function"} sortByType
* @property {boolean} [reversed]
*/
/**
* @typedef ObjectArrayMergerInput
* @property {Array<Array>} arrays
* @property {string} mergeBy
*/
export interface ObjectArraySorterInput<T> {
array: T[];
sortBy: keyof T;
sortByType: "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
reversed?: boolean;
}
export interface ObjectArrayMergerInput {
arrays: Array<any>;
mergeBy: string;
}
export type KeyValueType<T = string> = {
key: T;
value: string | number;
};
export type DeleteItemKindType = "id" | "index";
export type DeleteItemByIdExtraOptionsType<T> = {
key: keyof T;
value: string | number;
once?: boolean;
};
export type DeleteItemByIndexExtraOptionsType = {
index: number;
};
export type DeleteItemByIdOptionsType<T extends object> = {
by: "id";
} & DeleteItemByIdExtraOptionsType<T>;
export type DeleteItemByIndexOptionsType = {
by: "index";
} & DeleteItemByIndexExtraOptionsType;
export type DeleteItemOptions<T extends object> = DeleteItemByIdOptionsType<T> | DeleteItemByIndexOptionsType;