@rdkmaster/jigsaw-labs
Version:
Jigsaw, the next generation component set for RDK
111 lines (110 loc) • 3.9 kB
TypeScript
export declare class CommonUtils {
private static _noDataImageSrc;
static noDataImageSrc: string;
private static copy(source, isDeep);
/**
* 浅拷贝一个对象
* @param source
*/
static shallowCopy(source: Object): Object;
/**
* 深拷贝一个对象
* @param source
*/
static deepCopy(source: Object): Object;
/**
* 比较两个对象是否相等,如果提供`trackItemBy`参数,则只比较`trackItemBy`数组列出的属性是否相等;
* 如果未提供`trackItemBy`,则按值比较两个对象是否相等。
*
* @param item1 待比较的值1
* @param item2 待比较的值2
* @param {string[]} trackItemBy 待比较的属性列表
* @returns {boolean}
*/
static compareWithKeyProperty(item1: any, item2: any, trackItemBy: string[]): boolean;
/**
* 判断一个对象是否不包含任何属性
*
* @param obj
* @returns {boolean}
*/
static isEmptyObject(obj: any): boolean;
/**
* 负责两个对象的合并,将sourceObject 中的属性添加到targetObject 中
*
* @param targetObject 要合并的源对象
* @param sourceObject 合并的对象信息
* @returns {Object} 如果`targetObject`非空,则返回`targetObject`,否则返回一个新对象。
*/
static extendObject(targetObject: Object, sourceObject: Object): Object;
static extendObjects<T = Object>(targetObject: T, ...sources: any[]): T;
/**
* 把一个值转为px或%
* @param value
* @returns string
*/
static getCssValue(value: string | number): string;
/**
*
* @param element
* @param selector 支持'.className' '#id' '[attr]' 'tagName'
* @returns {HTMLElement}
*/
static getParentNodeBySelector(element: HTMLElement, selector: string): HTMLElement;
/**
* 获取浏览器的语言,例如 `"zh"`
*
* @returns string
*/
static getBrowserLang(): string;
/**
* 获取浏览器的语言,例如 `"zh-CN"`
*
* @returns string
*/
static getBrowserCultureLang(): string;
/**
* 安全的调用一个函数,并返回该函数的返回值。如果该函数执行失败,可以在控制台给出实际的堆栈以协助排查问题
*
* @param context 执行函数的上下文
* @param {Function} callback 待执行的回调函数
* @param {any[]} args 传递给回调函数的参数列表
* @returns {any} 返回该函数的返回值
*/
static safeInvokeCallback(context: any, callback: Function, args?: any[]): any;
/**
* 可靠的判断一个值是否有效,输入 `""` 和 `0` 均返回true,只有`null`或者`undefined`才会返回false
*
* @param value 待测验的值
* @returns {boolean}
*/
static isDefined(value: any): boolean;
/**
* 参考 `isDefined`
*
* @param value
* @returns {boolean}
*/
static isUndefined(value: any): boolean;
/**
* 将url中的参数解析为一个对象
*
* @param {string} rawParam 格式为`var1=value1&var2=value2`
* @returns {Object} 返回类似`{var1: "value1", var2: "value2"}`的对象
*/
static parseUrlParam(rawParam: string): Object;
/**
* 是浏览器内置uri解码`decodeURI()`函数的火力增强版,可以解码任何uri
*
* @param {string} uri
* @returns {string}
*/
static superDecodeURI(uri: string): string;
/**
* 判断浏览器是否为IE
*/
static isIE(): boolean;
static getBrowserType(): string;
static toTrackByFunction(trackBy: string | string[]): (index: number, item: any) => any;
}
export declare type CallbackRemoval = () => void;