UNPKG

@mdui/jq

Version:

拥有和 jQuery 相似 API 的轻量级 JavaScript 工具库

106 lines (104 loc) 3.38 kB
import type { PlainObject } from '../shared/helper.js'; /** * 比 ../functions/extend 函数多了一个 extend<T>(target: T): this & T 的用法 */ declare module '../shared/core.js' { interface JQStatic { /** * 将所有对象的属性都添加到第一个对象,并返回合并后的对象。 * @param target 其他参数的属性将合并到该参数 * @param object1 该对象的属性将合并到第一个参数 * @param object2 该对象的属性将合并到第一个参数 * @param object3 该对象的属性将合并到第一个参数 * @example ```js var object = extend( { key: value }, { key1: value1 }, { key2: value2 }, { key3: value3 }, ); // 此时第一个对象和返回值都是 { key: value, key1: value1, key2: value2, key3: value3, } ``` */ extend<T extends PlainObject, U extends PlainObject, V extends PlainObject, W extends PlainObject>(target: T, object1: U, object2: V, object3: W): T & U & V & W; /** * 将所有对象的属性都添加到第一个对象,并返回合并后的对象。 * @param target 其他参数的属性将合并到该参数 * @param object1 该对象的属性将合并到第一个参数 * @param object2 该对象的属性将合并到第一个参数 * @example ```js var object = extend( { key: value }, { key1: value1 }, { key2: value2 }, ); // 此时第一个对象和返回值都是 { key: value, key1: value1, key2: value2, } ``` */ extend<T extends PlainObject, U extends PlainObject, V extends PlainObject>(target: T, object1: U, object2: V): T & U & V; /** * 将所有对象的属性都添加到第一个对象,并返回合并后的对象。 * @param target 其他参数的属性将合并到该参数 * @param object1 该对象的属性将合并到第一个参数 * @example ```js var object = extend( { key: value }, { key1: value1 }, ); // 此时第一个对象和返回值都是 { key: value, key1: value1, } ``` */ extend<T extends PlainObject, U extends PlainObject>(target: T, object1: U): T & U; /** * 将对象属性扩展到 $ 命名空间中 * @param target 该对象的属性将扩展到 $ 命名空间中 * @example ```js $.extend({ customFunc: function () {} }) // 然后就可以这样调用自定义方法了 $.customFunc() ``` */ extend<T extends PlainObject>(target: T): this & T; /** * 将所有对象的属性都添加到第一个对象,并返回合并后的对象。 * @param target 其他参数的属性将合并到该参数 * @param objectN 额外的对象,这些对象的属性将合并到第一个对象 * @example ```js var object = extend( { key: value }, { key1: value1 }, { key2: value2 }, ); // 此时第一个对象和返回值都是 { key: value, key1: value1, key2: value2, } ``` */ extend(target: PlainObject, ...objectN: PlainObject[]): PlainObject; } }