wjk-util 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/wjk-util.es.js +1 -1
- package/dist/wjk-util.umd.js +1 -1
- package/package.json +46 -43
- package/types/module/array.d.ts +15 -0
- package/types/module/file.d.ts +48 -0
- package/types/module/finance.d.ts +3 -0
- package/types/module/link.d.ts +18 -0
- package/types/module/math.d.ts +18 -0
- package/types/module/object.d.ts +20 -4
- package/types/module/storage.d.ts +16 -0
- package/types/module/type.d.ts +95 -0
package/dist/wjk-util.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e){return Array.isArray(e)}function n(t){return"object"===e(t)}function r(e){return"function"==typeof e}function o(e){return"string"==typeof e}function c(e){return"number"==typeof e&&!isNaN(e)}function i(e){return"boolean"==typeof e}function u(e){return null===e}function a(e){return void 0===e}function s(e){return!(!u(e)&&!a(e))||(o(e)||t(e)?0===e.length:!!n(e)&&0===Object.keys(e).length)}function l(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return[...new Set(e)]}function f(e,t=1){if(!Array.isArray(e))throw new Error("参数必须是数组");return t<=0?e.slice():e.reduce((e,n)=>e.concat(Array.isArray(n)?f(n,t-1):[n]),[])}function y(e,t=1){if(!Array.isArray(e))throw new Error("参数必须是数组");if(t<=0)return[];const n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function h(e){if(Array.isArray(e)&&0!==e.length)return Math.max(...e)}function p(e){if(Array.isArray(e)&&0!==e.length)return Math.min(...e)}function g(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return e.reduce((e,t)=>e+t,0)}function d(e){if(Array.isArray(e)&&0!==e.length)return g(e)/e.length}function m(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof
|
|
1
|
+
function e(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function t(e){return Array.isArray(e)}function n(t){return"object"===e(t)}function r(e){return"function"==typeof e}function o(e){return"string"==typeof e}function c(e){return"number"==typeof e&&!isNaN(e)}function i(e){return"boolean"==typeof e}function u(e){return null===e}function a(e){return void 0===e}function s(e){return!(!u(e)&&!a(e))||(o(e)||t(e)?0===e.length:!!n(e)&&0===Object.keys(e).length)}function l(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return[...new Set(e)]}function f(e,t=1){if(!Array.isArray(e))throw new Error("参数必须是数组");return t<=0?e.slice():e.reduce((e,n)=>e.concat(Array.isArray(n)?f(n,t-1):[n]),[])}function y(e,t=1){if(!Array.isArray(e))throw new Error("参数必须是数组");if(t<=0)return[];const n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}function h(e){if(Array.isArray(e)&&0!==e.length)return Math.max(...e)}function p(e){if(Array.isArray(e)&&0!==e.length)return Math.min(...e)}function g(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return e.reduce((e,t)=>e+t,0)}function d(e){if(Array.isArray(e)&&0!==e.length)return g(e)/e.length}function m(e,t=/* @__PURE__ */new WeakMap){if(null===e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(e instanceof HTMLElement)return e.cloneNode(!0);if(t.has(e))return t.get(e);if(Array.isArray(e)){const n=[];return t.set(e,n),e.forEach((e,r)=>{n[r]=m(e,t)}),n}const n={};return t.set(e,n),Object.keys(e).forEach(r=>{n[r]=m(e[r],t)}),n}function v(...e){const t={};return e.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(n=>{const r=n;void 0!==e[r]&&(t[r]=e[r])})}),t}function E(e){return"object"!=typeof e||null===e?[]:Object.keys(e)}function b(e){return"object"!=typeof e||null===e?[]:Object.values(e)}function w(e,t){return"object"==typeof e&&null!==e&&e.hasOwnProperty(t)}function A(e,t){return Math.floor(Math.random()*(t-e+1))+e}function j(e,t,n){return Math.min(Math.max(e,t),n)}function x(e){return e*(Math.PI/180)}function M(e){return e*(180/Math.PI)}function L(e,t){const n=t.x-e.x,r=t.y-e.y;return Math.sqrt(n*n+r*r)}function S(e,t){return Number(Math.round(parseFloat(e+"e"+t))+"e-"+t)}function O(e,t,n=!1){try{(n?sessionStorage:localStorage).setItem(e,JSON.stringify(t))}catch(r){console.error("存储失败:",r)}}function k(e,t=!1){try{const n=(t?sessionStorage:localStorage).getItem(e);return n?JSON.parse(n):null}catch(n){return console.error("获取存储失败:",n),null}}function N(e,t=!1){try{(t?sessionStorage:localStorage).removeItem(e)}catch(n){console.error("删除存储失败:",n)}}function P(e=!1){try{(e?sessionStorage:localStorage).clear()}catch(t){console.error("清空存储失败:",t)}}function R(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".xls,.xlsx,.xlsm",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("Excel文件上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})}function I(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".jpg,.png,.jpeg,.gif",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("图片上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})}function U(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".gltf,.glb",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("模型上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})}function C(e,t,n="application/vnd.ms-excel;charset=utf-8"){const r=document.createElement("a");r.download=t,r.style.display="none";const o=new Blob([e],{type:n});r.href=URL.createObjectURL(o),document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(r.href)}function D(e,t,n){return e*Math.pow(1+t,n)}export{d as average,y as chunk,j as clamp,P as clearStorage,D as compoundInterest,m as deepClone,x as degreesToRadians,L as distance,C as downloadFile,f as flatten,k as getStorage,e as getType,w as hasKey,t as isArray,i as isBoolean,s as isEmpty,r as isFunction,u as isNull,c as isNumber,n as isObject,o as isString,a as isUndefined,E as keys,h as max,v as merge,p as min,M as radiansToDegrees,A as randomInt,N as removeStorage,S as round,O as setStorage,g as sum,l as unique,R as uploadExcelFile,I as uploadImageFile,U as uploadModelFile,b as values};
|
package/dist/wjk-util.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WJKUtil={})}(this,function(e){"use strict";function t(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function n(e){return Array.isArray(e)}function r(e){return"object"===t(e)}function o(e){return"string"==typeof e}function c(e){return null===e}function i(e){return void 0===e}function a(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return e.reduce((e,t)=>e+t,0)}
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).WJKUtil={})}(this,function(e){"use strict";function t(e){return Object.prototype.toString.call(e).slice(8,-1).toLowerCase()}function n(e){return Array.isArray(e)}function r(e){return"object"===t(e)}function o(e){return"string"==typeof e}function c(e){return null===e}function i(e){return void 0===e}function a(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return e.reduce((e,t)=>e+t,0)}e.average=function(e){if(Array.isArray(e)&&0!==e.length)return a(e)/e.length},e.chunk=function(e,t=1){if(!Array.isArray(e))throw new Error("参数必须是数组");if(t<=0)return[];const n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n},e.clamp=function(e,t,n){return Math.min(Math.max(e,t),n)},e.clearStorage=function(e=!1){try{(e?sessionStorage:localStorage).clear()}catch(t){console.error("清空存储失败:",t)}},e.compoundInterest=function(e,t,n){return e*Math.pow(1+t,n)},e.deepClone=function e(t,n=new WeakMap){if(null===t||"object"!=typeof t)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t.source,t.flags);if(t instanceof HTMLElement)return t.cloneNode(!0);if(n.has(t))return n.get(t);if(Array.isArray(t)){const r=[];return n.set(t,r),t.forEach((t,o)=>{r[o]=e(t,n)}),r}const r={};return n.set(t,r),Object.keys(t).forEach(o=>{r[o]=e(t[o],n)}),r},e.degreesToRadians=function(e){return e*(Math.PI/180)},e.distance=function(e,t){const n=t.x-e.x,r=t.y-e.y;return Math.sqrt(n*n+r*r)},e.downloadFile=function(e,t,n="application/vnd.ms-excel;charset=utf-8"){const r=document.createElement("a");r.download=t,r.style.display="none";const o=new Blob([e],{type:n});r.href=URL.createObjectURL(o),document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(r.href)},e.flatten=function e(t,n=1){if(!Array.isArray(t))throw new Error("参数必须是数组");return n<=0?t.slice():t.reduce((t,r)=>t.concat(Array.isArray(r)?e(r,n-1):[r]),[])},e.getStorage=function(e,t=!1){try{const n=(t?sessionStorage:localStorage).getItem(e);return n?JSON.parse(n):null}catch(n){return console.error("获取存储失败:",n),null}},e.getType=t,e.hasKey=function(e,t){return"object"==typeof e&&null!==e&&e.hasOwnProperty(t)},e.isArray=n,e.isBoolean=function(e){return"boolean"==typeof e},e.isEmpty=function(e){return!(!c(e)&&!i(e))||(o(e)||n(e)?0===e.length:!!r(e)&&0===Object.keys(e).length)},e.isFunction=function(e){return"function"==typeof e},e.isNull=c,e.isNumber=function(e){return"number"==typeof e&&!isNaN(e)},e.isObject=r,e.isString=o,e.isUndefined=i,e.keys=function(e){return"object"!=typeof e||null===e?[]:Object.keys(e)},e.max=function(e){if(Array.isArray(e)&&0!==e.length)return Math.max(...e)},e.merge=function(...e){const t={};return e.forEach(e=>{e&&"object"==typeof e&&Object.keys(e).forEach(n=>{const r=n;void 0!==e[r]&&(t[r]=e[r])})}),t},e.min=function(e){if(Array.isArray(e)&&0!==e.length)return Math.min(...e)},e.radiansToDegrees=function(e){return e*(180/Math.PI)},e.randomInt=function(e,t){return Math.floor(Math.random()*(t-e+1))+e},e.removeStorage=function(e,t=!1){try{(t?sessionStorage:localStorage).removeItem(e)}catch(n){console.error("删除存储失败:",n)}},e.round=function(e,t){return Number(Math.round(parseFloat(e+"e"+t))+"e-"+t)},e.setStorage=function(e,t,n=!1){try{(n?sessionStorage:localStorage).setItem(e,JSON.stringify(t))}catch(r){console.error("存储失败:",r)}},e.sum=a,e.unique=function(e){if(!Array.isArray(e))throw new Error("参数必须是数组");return[...new Set(e)]},e.uploadExcelFile=function(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".xls,.xlsx,.xlsm",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("Excel文件上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})},e.uploadImageFile=function(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".jpg,.png,.jpeg,.gif",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("图片上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})},e.uploadModelFile=function(){return new Promise(e=>{const t=document.createElement("input");t.type="file",t.accept=".gltf,.glb",t.click(),t.addEventListener("change",function n(r){const o=r.target,c=o.files?.[0];if(c){const n=c.name.split("."),r=n[n.length-1];t.accept.includes(r)?e(c):(console.error("模型上传格式错误"),e(void 0))}else e(void 0);t.removeEventListener("change",n)})})},e.values=function(e){return"object"!=typeof e||null===e?[]:Object.values(e)},Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
|
package/package.json
CHANGED
|
@@ -1,43 +1,46 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "wjk-util",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "一个包含常见 JavaScript 函数的实用库",
|
|
6
|
-
"author": "wjk",
|
|
7
|
-
"license": "MIT",
|
|
8
|
-
"repository": {
|
|
9
|
-
"type": "gitee",
|
|
10
|
-
"url": "https://gitee.com/wjkfree/wjk-util.git"
|
|
11
|
-
},
|
|
12
|
-
"homepage": "https://gitee.com/wjkfree/wjk-util#readme",
|
|
13
|
-
"keywords": [
|
|
14
|
-
"utility",
|
|
15
|
-
"functions",
|
|
16
|
-
"typescript"
|
|
17
|
-
],
|
|
18
|
-
"files": [
|
|
19
|
-
"dist",
|
|
20
|
-
"types"
|
|
21
|
-
],
|
|
22
|
-
"main": "./dist/wjk-util.umd.js",
|
|
23
|
-
"module": "./dist/wjk-util.es.js",
|
|
24
|
-
"types": "./types/index.d.ts",
|
|
25
|
-
"exports": {
|
|
26
|
-
"types": "./types/index.d.ts",
|
|
27
|
-
"import": "./dist/wjk-util.es.js",
|
|
28
|
-
"require": "./dist/wjk-util.umd.js"
|
|
29
|
-
},
|
|
30
|
-
"sideEffects": false,
|
|
31
|
-
"scripts": {
|
|
32
|
-
"dev": "vite",
|
|
33
|
-
"build": "vite build",
|
|
34
|
-
"patch": "npm version patch",
|
|
35
|
-
"publish": "npm publish"
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "wjk-util",
|
|
3
|
+
"version": "0.0.13",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "一个包含常见 JavaScript 函数的实用库",
|
|
6
|
+
"author": "wjk",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "gitee",
|
|
10
|
+
"url": "https://gitee.com/wjkfree/wjk-util.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://gitee.com/wjkfree/wjk-util#readme",
|
|
13
|
+
"keywords": [
|
|
14
|
+
"utility",
|
|
15
|
+
"functions",
|
|
16
|
+
"typescript"
|
|
17
|
+
],
|
|
18
|
+
"files": [
|
|
19
|
+
"dist",
|
|
20
|
+
"types"
|
|
21
|
+
],
|
|
22
|
+
"main": "./dist/wjk-util.umd.js",
|
|
23
|
+
"module": "./dist/wjk-util.es.js",
|
|
24
|
+
"types": "./types/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
"types": "./types/index.d.ts",
|
|
27
|
+
"import": "./dist/wjk-util.es.js",
|
|
28
|
+
"require": "./dist/wjk-util.umd.js"
|
|
29
|
+
},
|
|
30
|
+
"sideEffects": false,
|
|
31
|
+
"scripts": {
|
|
32
|
+
"dev": "vite",
|
|
33
|
+
"build": "vite build",
|
|
34
|
+
"patch": "npm version patch",
|
|
35
|
+
"publish": "npm publish",
|
|
36
|
+
"docs": "typedoc"
|
|
37
|
+
},
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"terser": "^5.46.0",
|
|
40
|
+
"typedoc": "^0.28.17",
|
|
41
|
+
"typedoc-plugin-markdown": "^4.10.0",
|
|
42
|
+
"typescript": "~5.9.3",
|
|
43
|
+
"vite": "^7.3.1",
|
|
44
|
+
"vite-plugin-dts": "^4.5.4"
|
|
45
|
+
}
|
|
46
|
+
}
|
package/types/module/array.d.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @returns 去重后的数组
|
|
5
5
|
* @example
|
|
6
6
|
* unique([1, 2, 2, 3, 4, 4, 5]) // [1, 2, 3, 4, 5]
|
|
7
|
+
* @group Array
|
|
7
8
|
*/
|
|
8
9
|
export declare function unique<T>(array: T[]): T[];
|
|
9
10
|
/**
|
|
@@ -13,6 +14,7 @@ export declare function unique<T>(array: T[]): T[];
|
|
|
13
14
|
* @returns 扁平化后的数组
|
|
14
15
|
* @example
|
|
15
16
|
* flatten([1, [2, [3, [4, [5]]]]]) // [1, 2, [3, [4, [5]]]]
|
|
17
|
+
* @group Array
|
|
16
18
|
*/
|
|
17
19
|
export declare function flatten<T>(array: (T | T[])[], depth?: number): T[];
|
|
18
20
|
/**
|
|
@@ -20,29 +22,42 @@ export declare function flatten<T>(array: (T | T[])[], depth?: number): T[];
|
|
|
20
22
|
* @param array 待分块数组
|
|
21
23
|
* @param size 每块大小
|
|
22
24
|
* @returns 分块后的二维数组
|
|
25
|
+
* @example
|
|
26
|
+
* chunk([1, 2, 3, 4, 5, 6, 7, 8], 3) // [[1, 2, 3], [4, 5, 6], [7, 8]]
|
|
27
|
+
* @group Array
|
|
23
28
|
*/
|
|
24
29
|
export declare function chunk<T>(array: T[], size?: number): T[][];
|
|
25
30
|
/**
|
|
26
31
|
* 获取数组中的最大值
|
|
27
32
|
* @param array 数字数组
|
|
28
33
|
* @returns 最大值
|
|
34
|
+
* @example
|
|
35
|
+
* max([1, 2, 3, 4, 5]) // 5
|
|
36
|
+
* @group Array
|
|
29
37
|
*/
|
|
30
38
|
export declare function max(array: number[]): number | undefined;
|
|
31
39
|
/**
|
|
32
40
|
* 获取数组中的最小值
|
|
33
41
|
* @param array 数字数组
|
|
34
42
|
* @returns 最小值
|
|
43
|
+
* @group Array
|
|
35
44
|
*/
|
|
36
45
|
export declare function min(array: number[]): number | undefined;
|
|
37
46
|
/**
|
|
38
47
|
* 数组求和
|
|
39
48
|
* @param array 数字数组
|
|
40
49
|
* @returns 求和结果
|
|
50
|
+
* @example
|
|
51
|
+
* sum([1, 2, 3, 4, 5]) // 15
|
|
52
|
+
* @group Array
|
|
41
53
|
*/
|
|
42
54
|
export declare function sum(array: number[]): number;
|
|
43
55
|
/**
|
|
44
56
|
* 数组平均值
|
|
45
57
|
* @param array 数字数组
|
|
46
58
|
* @returns 平均值
|
|
59
|
+
* @example
|
|
60
|
+
* average([1, 2, 3, 4, 5]) // 3
|
|
61
|
+
* @group Array
|
|
47
62
|
*/
|
|
48
63
|
export declare function average(array: number[]): number | undefined;
|
package/types/module/file.d.ts
CHANGED
|
@@ -1,4 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 上传Excel文件
|
|
3
|
+
* @returns 上传的Excel文件对象
|
|
4
|
+
* @example
|
|
5
|
+
* uploadExcelFile().then(file => {
|
|
6
|
+
* if (file) {
|
|
7
|
+
* console.log('上传成功', file);
|
|
8
|
+
* } else {
|
|
9
|
+
* console.log('上传失败');
|
|
10
|
+
* }
|
|
11
|
+
* });
|
|
12
|
+
* @group File
|
|
13
|
+
*/
|
|
1
14
|
export declare function uploadExcelFile(): Promise<File | undefined>;
|
|
15
|
+
/**
|
|
16
|
+
* 上传图片文件
|
|
17
|
+
* @returns 上传的图片文件对象
|
|
18
|
+
* @example
|
|
19
|
+
* uploadImageFile().then(file => {
|
|
20
|
+
* if (file) {
|
|
21
|
+
* console.log('上传成功', file);
|
|
22
|
+
* } else {
|
|
23
|
+
* console.log('上传失败');
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
* @group File
|
|
27
|
+
*/
|
|
2
28
|
export declare function uploadImageFile(): Promise<File | undefined>;
|
|
29
|
+
/**
|
|
30
|
+
* 上传模型文件
|
|
31
|
+
* @returns 上传的模型文件对象
|
|
32
|
+
* @example
|
|
33
|
+
* uploadModelFile().then(file => {
|
|
34
|
+
* if (file) {
|
|
35
|
+
* console.log('上传成功', file);
|
|
36
|
+
* } else {
|
|
37
|
+
* console.log('上传失败');
|
|
38
|
+
* }
|
|
39
|
+
* });
|
|
40
|
+
* @group File
|
|
41
|
+
*/
|
|
3
42
|
export declare function uploadModelFile(): Promise<File | undefined>;
|
|
43
|
+
/**
|
|
44
|
+
* 下载文件
|
|
45
|
+
* @param data 文件数据
|
|
46
|
+
* @param name 文件名
|
|
47
|
+
* @param mimeType 文件MIME类型,默认为Excel文件类型
|
|
48
|
+
* @example
|
|
49
|
+
* downloadFile('文件内容', 'example.xlsx');
|
|
50
|
+
* @group File
|
|
51
|
+
*/
|
|
4
52
|
export declare function downloadFile(data: string | Blob | ArrayBuffer, name: string, mimeType?: string): void;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 将 URL 参数转换为 JSON 对象
|
|
3
|
+
* @param url 包含参数的 URL 字符串
|
|
4
|
+
* @returns 转换后的 JSON 对象
|
|
5
|
+
* @example
|
|
6
|
+
* paramToJson('https://example.com?name=John&age=30') // { name: 'John', age: '30' }
|
|
7
|
+
* @group Link
|
|
8
|
+
*/
|
|
9
|
+
export declare function paramToJson(url: string): Record<string, string>;
|
|
10
|
+
/**
|
|
11
|
+
* 将 JSON 对象转换为 URL 参数字符串
|
|
12
|
+
* @param json JSON 对象
|
|
13
|
+
* @returns 转换后的 URL 参数字符串
|
|
14
|
+
* @example
|
|
15
|
+
* jsonToParam({ name: 'John', age: 30 }) // 'name=John&age=30'
|
|
16
|
+
* @group Link
|
|
17
|
+
*/
|
|
18
|
+
export declare function jsonToParam(json: Record<string, any>): string;
|
package/types/module/math.d.ts
CHANGED
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
* @param min 最小值
|
|
4
4
|
* @param max 最大值
|
|
5
5
|
* @returns 随机整数
|
|
6
|
+
* @example
|
|
7
|
+
* randomInt(1, 10) // 5
|
|
8
|
+
* @group Math
|
|
6
9
|
*/
|
|
7
10
|
export declare function randomInt(min: number, max: number): number;
|
|
8
11
|
/**
|
|
@@ -11,18 +14,27 @@ export declare function randomInt(min: number, max: number): number;
|
|
|
11
14
|
* @param min 最小值
|
|
12
15
|
* @param max 最大值
|
|
13
16
|
* @returns 限制后的数值
|
|
17
|
+
* @example
|
|
18
|
+
* clamp(5, 1, 10) // 5
|
|
19
|
+
* @group Math
|
|
14
20
|
*/
|
|
15
21
|
export declare function clamp(value: number, min: number, max: number): number;
|
|
16
22
|
/**
|
|
17
23
|
* 将角度转换为弧度
|
|
18
24
|
* @param degrees 角度
|
|
19
25
|
* @returns 弧度
|
|
26
|
+
* @example
|
|
27
|
+
* degreesToRadians(180) // 3.141592653589793
|
|
28
|
+
* @group Math
|
|
20
29
|
*/
|
|
21
30
|
export declare function degreesToRadians(degrees: number): number;
|
|
22
31
|
/**
|
|
23
32
|
* 将弧度转换为角度
|
|
24
33
|
* @param radians 弧度
|
|
25
34
|
* @returns 角度
|
|
35
|
+
* @example
|
|
36
|
+
* radiansToDegrees(Math.PI) // 180
|
|
37
|
+
* @group Math
|
|
26
38
|
*/
|
|
27
39
|
export declare function radiansToDegrees(radians: number): number;
|
|
28
40
|
/**
|
|
@@ -30,6 +42,9 @@ export declare function radiansToDegrees(radians: number): number;
|
|
|
30
42
|
* @param point1 点1 {x, y}
|
|
31
43
|
* @param point2 点2 {x, y}
|
|
32
44
|
* @returns 距离
|
|
45
|
+
* @example
|
|
46
|
+
* distance({ x: 0, y: 0 }, { x: 3, y: 4 }) // 5
|
|
47
|
+
* @group Math
|
|
33
48
|
*/
|
|
34
49
|
export declare function distance(point1: {
|
|
35
50
|
x: number;
|
|
@@ -43,5 +58,8 @@ export declare function distance(point1: {
|
|
|
43
58
|
* @param value 数值
|
|
44
59
|
* @param decimals 小数位数
|
|
45
60
|
* @returns 四舍五入后的数值
|
|
61
|
+
* @example
|
|
62
|
+
* round(1.2345, 2) // 1.23
|
|
63
|
+
* @group Math
|
|
46
64
|
*/
|
|
47
65
|
export declare function round(value: number, decimals: number): number;
|
package/types/module/object.d.ts
CHANGED
|
@@ -1,31 +1,47 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* 深拷贝对象
|
|
3
|
-
* @param obj
|
|
4
|
-
* @
|
|
3
|
+
* @param obj - 需要深拷贝的对象
|
|
4
|
+
* @param hash - 用于处理循环引用的哈希表
|
|
5
|
+
* @returns 深拷贝后的对象
|
|
6
|
+
* @example
|
|
7
|
+
* deepClone({ a: 1, b: { c: 2 } }) // { a: 1, b: { c: 2 } }
|
|
8
|
+
* @group Object
|
|
5
9
|
*/
|
|
6
|
-
export declare function deepClone<T>(obj: T): T;
|
|
10
|
+
export declare function deepClone<T>(obj: T, hash?: WeakMap<object, any>): T;
|
|
7
11
|
/**
|
|
8
12
|
* 合并对象
|
|
9
13
|
* @param objects 待合并的对象
|
|
10
14
|
* @returns 合并后的对象
|
|
15
|
+
* @example
|
|
16
|
+
* merge({ a: 1, b: 2 }, { b: 3, c: 4 }) // { a: 1, b: 3, c: 4 }
|
|
17
|
+
* @group Object
|
|
11
18
|
*/
|
|
12
19
|
export declare function merge<T extends Record<string, any>>(...objects: Partial<T>[]): T;
|
|
13
20
|
/**
|
|
14
21
|
* 获取对象的所有键
|
|
15
22
|
* @param obj 对象
|
|
16
23
|
* @returns 键数组
|
|
24
|
+
* @example
|
|
25
|
+
* keys({ a: 1, b: 2 }) // ['a', 'b']
|
|
26
|
+
* @group Object
|
|
17
27
|
*/
|
|
18
28
|
export declare function keys<T extends Record<string, any>>(obj: T): (keyof T)[];
|
|
19
29
|
/**
|
|
20
30
|
* 获取对象的所有值
|
|
21
31
|
* @param obj 对象
|
|
22
32
|
* @returns 值数组
|
|
33
|
+
* @example
|
|
34
|
+
* values({ a: 1, b: 2 }) // [1, 2]
|
|
35
|
+
* @group Object
|
|
23
36
|
*/
|
|
24
37
|
export declare function values<T extends Record<string, any>>(obj: T): T[keyof T][];
|
|
25
38
|
/**
|
|
26
39
|
* 检查对象是否包含某个键
|
|
27
40
|
* @param obj 对象
|
|
28
41
|
* @param key 键名
|
|
29
|
-
* @returns
|
|
42
|
+
* @returns 是否包含该键
|
|
43
|
+
* @example
|
|
44
|
+
* hasKey({ a: 1, b: 2 }, 'a') // true
|
|
45
|
+
* @group Object
|
|
30
46
|
*/
|
|
31
47
|
export declare function hasKey<T extends Record<string, any>>(obj: T, key: PropertyKey): key is keyof T;
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
* @param key 键
|
|
4
4
|
* @param value 值
|
|
5
5
|
* @param isSession 是否使用sessionStorage,默认false
|
|
6
|
+
* @example
|
|
7
|
+
* setStorage('token', '123456') // 存储token到localStorage
|
|
8
|
+
* setStorage('user', { id: 1, name: '张三' }, true) // 存储用户信息到sessionStorage
|
|
9
|
+
* @group Storage
|
|
6
10
|
*/
|
|
7
11
|
export declare function setStorage<T>(key: string, value: T, isSession?: boolean): void;
|
|
8
12
|
/**
|
|
@@ -10,16 +14,28 @@ export declare function setStorage<T>(key: string, value: T, isSession?: boolean
|
|
|
10
14
|
* @param key 键
|
|
11
15
|
* @param isSession 是否使用sessionStorage,默认false
|
|
12
16
|
* @returns 存储的值
|
|
17
|
+
* @example
|
|
18
|
+
* getStorage('token') // '123456'
|
|
19
|
+
* getStorage('user', true) // { id: 1, name: '张三' }
|
|
20
|
+
* @group Storage
|
|
13
21
|
*/
|
|
14
22
|
export declare function getStorage<T>(key: string, isSession?: boolean): T | null;
|
|
15
23
|
/**
|
|
16
24
|
* 删除本地存储
|
|
17
25
|
* @param key 键
|
|
18
26
|
* @param isSession 是否使用sessionStorage,默认false
|
|
27
|
+
* @example
|
|
28
|
+
* removeStorage('token') // 删除localStorage中的token
|
|
29
|
+
* removeStorage('user', true) // 删除sessionStorage中的user
|
|
30
|
+
* @group Storage
|
|
19
31
|
*/
|
|
20
32
|
export declare function removeStorage(key: string, isSession?: boolean): void;
|
|
21
33
|
/**
|
|
22
34
|
* 清空本地存储
|
|
23
35
|
* @param isSession 是否使用sessionStorage,默认false
|
|
36
|
+
* @example
|
|
37
|
+
* clearStorage() // 清空localStorage
|
|
38
|
+
* clearStorage(true) // 清空sessionStorage
|
|
39
|
+
* @group Storage
|
|
24
40
|
*/
|
|
25
41
|
export declare function clearStorage(isSession?: boolean): void;
|
package/types/module/type.d.ts
CHANGED
|
@@ -2,59 +2,154 @@
|
|
|
2
2
|
* 检测变量类型
|
|
3
3
|
* @param value 待检测的值
|
|
4
4
|
* @returns 类型字符串
|
|
5
|
+
* @example
|
|
6
|
+
* getType({}) // 'object'
|
|
7
|
+
* getType([]) // 'array'
|
|
8
|
+
* getType('') // 'string'
|
|
9
|
+
* getType(0) // 'number'
|
|
10
|
+
* getType(true) // 'boolean'
|
|
11
|
+
* getType(null) // 'null'
|
|
12
|
+
* getType(undefined) // 'undefined'
|
|
13
|
+
* @group Type
|
|
5
14
|
*/
|
|
6
15
|
export declare function getType(value: unknown): string;
|
|
7
16
|
/**
|
|
8
17
|
* 判断是否为数组
|
|
9
18
|
* @param value 待检测的值
|
|
10
19
|
* @returns
|
|
20
|
+
* @example
|
|
21
|
+
* isArray([]) // true
|
|
22
|
+
* isArray([1, 2, 3]) // true
|
|
23
|
+
* isArray({}) // false
|
|
24
|
+
* isArray('') // false
|
|
25
|
+
* isArray(0) // false
|
|
26
|
+
* isArray(true) // false
|
|
27
|
+
* isArray(null) // false
|
|
28
|
+
* isArray(undefined) // false
|
|
29
|
+
* @group Type
|
|
11
30
|
*/
|
|
12
31
|
export declare function isArray(value: unknown): value is unknown[];
|
|
13
32
|
/**
|
|
14
33
|
* 判断是否为对象
|
|
15
34
|
* @param value 待检测的值
|
|
16
35
|
* @returns
|
|
36
|
+
* @example
|
|
37
|
+
* isObject({}) // true
|
|
38
|
+
* isObject({ a: 1, b: 2 }) // true
|
|
39
|
+
* isObject([]) // false
|
|
40
|
+
* isObject('') // false
|
|
41
|
+
* isObject(0) // false
|
|
42
|
+
* isObject(true) // false
|
|
43
|
+
* isObject(null) // false
|
|
44
|
+
* isObject(undefined) // false
|
|
45
|
+
* @group Type
|
|
17
46
|
*/
|
|
18
47
|
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
19
48
|
/**
|
|
20
49
|
* 判断是否为函数
|
|
21
50
|
* @param value 待检测的值
|
|
22
51
|
* @returns
|
|
52
|
+
* @example
|
|
53
|
+
* isFunction(() => {}) // true
|
|
54
|
+
* isFunction(function () {}) // true
|
|
55
|
+
* isFunction(class {}) // true
|
|
56
|
+
* isFunction({}) // false
|
|
57
|
+
* isFunction([]) // false
|
|
58
|
+
* isFunction('') // false
|
|
59
|
+
* isFunction(0) // false
|
|
60
|
+
* isFunction(true) // false
|
|
61
|
+
* isFunction(null) // false
|
|
62
|
+
* isFunction(undefined) // false
|
|
63
|
+
* @group Type
|
|
23
64
|
*/
|
|
24
65
|
export declare function isFunction(value: unknown): value is Function;
|
|
25
66
|
/**
|
|
26
67
|
* 判断是否为字符串
|
|
27
68
|
* @param value 待检测的值
|
|
28
69
|
* @returns
|
|
70
|
+
* @example
|
|
71
|
+
* isString('') // true
|
|
72
|
+
* isString('hello') // true
|
|
73
|
+
* isString(0) // false
|
|
74
|
+
* isString(true) // false
|
|
75
|
+
* isString(null) // false
|
|
76
|
+
* isString(undefined) // false
|
|
77
|
+
* @group Type
|
|
29
78
|
*/
|
|
30
79
|
export declare function isString(value: unknown): value is string;
|
|
31
80
|
/**
|
|
32
81
|
* 判断是否为数字
|
|
33
82
|
* @param value 待检测的值
|
|
34
83
|
* @returns
|
|
84
|
+
* @example
|
|
85
|
+
* isNumber(0) // true
|
|
86
|
+
* isNumber(123) // true
|
|
87
|
+
* isNumber(-123) // true
|
|
88
|
+
* isNumber(123.456) // true
|
|
89
|
+
* isNumber(-123.456) // true
|
|
90
|
+
* isNumber('123') // false
|
|
91
|
+
* isNumber('123.456') // false
|
|
92
|
+
* isNumber(true) // false
|
|
93
|
+
* isNumber(null) // false
|
|
94
|
+
* isNumber(undefined) // false
|
|
95
|
+
* @group Type
|
|
35
96
|
*/
|
|
36
97
|
export declare function isNumber(value: unknown): value is number;
|
|
37
98
|
/**
|
|
38
99
|
* 判断是否为布尔值
|
|
39
100
|
* @param value 待检测的值
|
|
40
101
|
* @returns
|
|
102
|
+
* @example
|
|
103
|
+
* isBoolean(true) // true
|
|
104
|
+
* isBoolean(false) // true
|
|
105
|
+
* isBoolean(0) // false
|
|
106
|
+
* isBoolean(1) // false
|
|
107
|
+
* isBoolean('true') // false
|
|
108
|
+
* isBoolean('false') // false
|
|
109
|
+
* isBoolean(null) // false
|
|
110
|
+
* isBoolean(undefined) // false
|
|
111
|
+
* @group Type
|
|
41
112
|
*/
|
|
42
113
|
export declare function isBoolean(value: unknown): value is boolean;
|
|
43
114
|
/**
|
|
44
115
|
* 判断是否为null
|
|
45
116
|
* @param value 待检测的值
|
|
46
117
|
* @returns
|
|
118
|
+
* @example
|
|
119
|
+
* isNull(null) // true
|
|
120
|
+
* isNull(undefined) // false
|
|
121
|
+
* isNull('') // false
|
|
122
|
+
* isNull(0) // false
|
|
123
|
+
* isNull(true) // false
|
|
124
|
+
* @group Type
|
|
47
125
|
*/
|
|
48
126
|
export declare function isNull(value: unknown): value is null;
|
|
49
127
|
/**
|
|
50
128
|
* 判断是否为undefined
|
|
51
129
|
* @param value 待检测的值
|
|
52
130
|
* @returns
|
|
131
|
+
* @example
|
|
132
|
+
* isUndefined(undefined) // true
|
|
133
|
+
* isUndefined(null) // false
|
|
134
|
+
* isUndefined('') // false
|
|
135
|
+
* isUndefined(0) // false
|
|
136
|
+
* isUndefined(true) // false
|
|
137
|
+
* @group Type
|
|
53
138
|
*/
|
|
54
139
|
export declare function isUndefined(value: unknown): value is undefined;
|
|
55
140
|
/**
|
|
56
141
|
* 判断是否为空(null, undefined, 空字符串, 空数组, 空对象)
|
|
57
142
|
* @param value 待检测的值
|
|
58
143
|
* @returns
|
|
144
|
+
* @example
|
|
145
|
+
* isEmpty(null) // true
|
|
146
|
+
* isEmpty(undefined) // true
|
|
147
|
+
* isEmpty('') // true
|
|
148
|
+
* isEmpty([]) // true
|
|
149
|
+
* isEmpty({}) // true
|
|
150
|
+
* isEmpty('hello') // false
|
|
151
|
+
* isEmpty([1, 2, 3]) // false
|
|
152
|
+
* isEmpty({ a: 1, b: 2 }) // false
|
|
153
|
+
* @group Type
|
|
59
154
|
*/
|
|
60
155
|
export declare function isEmpty(value: unknown): boolean;
|