@buession/prototype
Version:
A native object extension framework for Javascript.
184 lines (183 loc) • 4.08 kB
TypeScript
/**
* Object 对象扩展
*/
interface ObjectConstructor {
/**
* 获取对象数据类型
*
* @param obj 对象变量
* @return 对象数据类型
*/
type(obj: any): string;
/**
* 获取对象原始数据类型
*
* @param obj 对象变量
* @return 原始数据类型
*/
rawType(obj: any): string;
/**
* 判断对象是否为 object 类型
*
* @param obj 任意对象
* @return boolean
*/
isObject(obj: any): boolean;
/**
* 判断对象是否为简单 object 类型
*
* @param obj 任意对象
* @return boolean
*/
isPlainObject(obj: any): boolean;
/**
* 判断对象是否为 Map 类型
*
* @param obj 任意对象
* @return boolean
*/
isMap(obj: any): boolean;
/**
* 判断对象是否为 Set 类型
*
* @param obj 任意对象
* @return boolean
*/
isSet(obj: any): boolean;
/**
* 判断对象是否为 Symbol
*
* @param obj 任意对象
* @return boolean
*/
isSymbol(obj: any): boolean;
/**
* 判断对象是否为 Promise
*
* @param obj 任意对象
* @return boolean
*/
isPromise(obj: any): boolean;
/**
* 判断对象是否为原始类型
*
* @param obj 任意对象
* @return boolean
*/
isPrimitive(obj: any): boolean;
/**
* 判断对象是否为函数
*
* @param obj 任意对象
* @return boolean
*/
isFunction(obj: any): boolean;
/**
* 判断对象是否为数组
*
* @param obj 任意对象
* @return boolean
*/
isArray(obj: any): boolean;
/**
* 判断对象是否为字符串对象
*
* @param obj 任意对象
* @return boolean
*/
isString(obj: any): boolean;
/**
* 判断对象是否为数字对象
*
* @param obj 任意对象
* @return boolean
*/
isNumber(obj: any): boolean;
/**
* 判断对象是否为布尔对象
*
* @param obj 任意对象
* @return boolean
*/
isBoolean(obj: any): boolean;
/**
* 判断对象是否为正则对象
*
* @param obj 任意对象
* @return boolean
*/
isRegExp(obj: any): boolean;
/**
* 判断对象是否为文件对象
*
* @param obj 任意对象
* @return boolean
*/
isFile(obj: any): boolean;
/**
* 判断对象是否为 windows 对象
*
* @param obj 任意对象
* @return boolean
*/
isWindow(obj: any): boolean;
/**
* 判断对象是否为 Element
*
* @param obj 任意对象
* @return boolean
*/
isElement(obj: any): boolean;
/**
* 判断对象是否为事件对象
*
* @param obj 任意对象
* @return boolean
*/
isEvent(obj: any): boolean;
/**
* 判断对象是否为 null 对象
*
* @param obj 任意对象
* @return boolean
*/
isNull(obj: any): boolean;
/**
* 判断对象是否为未定义
*
* @param obj 任意对象
* @return boolean
*/
isUndefined(obj: any): boolean;
/**
* 判断对象是否为未定义或 null
*
* @param obj 任意对象
* @return boolean
*/
isUndefinedOrNull(obj: any): boolean;
/**
* 判断两个对象是否相等
*
* @param obj1 一个对象
* @param obj2 用于和 obj1 比较的对象
* @return 当两个对象相等时,返回 true;否则,返回 false
*/
equals(obj1: any, obj2: any): boolean;
/**
* 克隆对象
*
* @param obj 任意对象
* @return 新对象实例
*/
clone(obj: any): any;
/**
* 克隆对象,但需要删除指定属性
*
* @param obj 任意对象
* @param fields 需要删除的属性
* @return 新对象实例
*/
omit<T extends object, K extends keyof T>(obj: T, ...fields: K[]): Omit<T, K>;
}
declare var Object: ObjectConstructor;