@mdui/jq
Version:
拥有和 jQuery 相似 API 的轻量级 JavaScript 工具库
106 lines (104 loc) • 3.38 kB
TypeScript
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;
}
}