wjk-util 0.0.12 → 0.1.0

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.
@@ -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,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};
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){return e*(Math.PI/180)}function x(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 M(e,t,n=!1){try{(n?sessionStorage:localStorage).setItem(e,JSON.stringify(t))}catch(r){console.error("存储失败:",r)}}function O(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 k(e,t=!1){try{(t?sessionStorage:localStorage).removeItem(e)}catch(n){console.error("删除存储失败:",n)}}function N(e=!1){try{(e?sessionStorage:localStorage).clear()}catch(t){console.error("清空存储失败:",t)}}function P(){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 R(){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 I(){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 U(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 C(e,t,n){return e*Math.pow(1+t,n)}export{d as average,y as chunk,N as clearStorage,C as compoundInterest,m as deepClone,j as degreesToRadians,L as distance,U as downloadFile,f as flatten,O 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,x as radiansToDegrees,A as randomInt,k as removeStorage,S as round,M as setStorage,g as sum,l as unique,P as uploadExcelFile,R as uploadImageFile,I as uploadModelFile,b as values};
@@ -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)}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"})});
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.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,6 +1,6 @@
1
1
  {
2
2
  "name": "wjk-util",
3
- "version": "0.0.12",
3
+ "version": "0.1.0",
4
4
  "type": "module",
5
5
  "description": "一个包含常见 JavaScript 函数的实用库",
6
6
  "author": "wjk",
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 数组去重
3
- * @param array 待去重数组
4
- * @returns 去重后的数组
3
+ * @param {array} array 待去重数组
4
+ * @returns {array} 去重后的数组
5
5
  * @example
6
6
  * unique([1, 2, 2, 3, 4, 4, 5]) // [1, 2, 3, 4, 5]
7
7
  * @group Array
@@ -9,9 +9,9 @@
9
9
  export declare function unique<T>(array: T[]): T[];
10
10
  /**
11
11
  * 数组扁平化
12
- * @param array 待扁平化数组
13
- * @param depth 扁平化深度,默认为1
14
- * @returns 扁平化后的数组
12
+ * @param {array} array 待扁平化数组
13
+ * @param {number} depth 扁平化深度,默认为1
14
+ * @returns {array} 扁平化后的数组
15
15
  * @example
16
16
  * flatten([1, [2, [3, [4, [5]]]]]) // [1, 2, [3, [4, [5]]]]
17
17
  * @group Array
@@ -19,9 +19,9 @@ export declare function unique<T>(array: T[]): T[];
19
19
  export declare function flatten<T>(array: (T | T[])[], depth?: number): T[];
20
20
  /**
21
21
  * 数组分块
22
- * @param array 待分块数组
23
- * @param size 每块大小
24
- * @returns 分块后的二维数组
22
+ * @param {array} array 待分块数组
23
+ * @param {number} size 每块大小
24
+ * @returns {array} 分块后的二维数组
25
25
  * @example
26
26
  * chunk([1, 2, 3, 4, 5, 6, 7, 8], 3) // [[1, 2, 3], [4, 5, 6], [7, 8]]
27
27
  * @group Array
@@ -29,8 +29,8 @@ export declare function flatten<T>(array: (T | T[])[], depth?: number): T[];
29
29
  export declare function chunk<T>(array: T[], size?: number): T[][];
30
30
  /**
31
31
  * 获取数组中的最大值
32
- * @param array 数字数组
33
- * @returns 最大值
32
+ * @param {array} array 数字数组
33
+ * @returns {number} 最大值
34
34
  * @example
35
35
  * max([1, 2, 3, 4, 5]) // 5
36
36
  * @group Array
@@ -38,15 +38,17 @@ export declare function chunk<T>(array: T[], size?: number): T[][];
38
38
  export declare function max(array: number[]): number | undefined;
39
39
  /**
40
40
  * 获取数组中的最小值
41
- * @param array 数字数组
42
- * @returns 最小值
41
+ * @param {array} array 数字数组
42
+ * @returns {number} 最小值
43
+ * @example
44
+ * min([1, 2, 3, 4, 5]) // 1
43
45
  * @group Array
44
46
  */
45
47
  export declare function min(array: number[]): number | undefined;
46
48
  /**
47
49
  * 数组求和
48
- * @param array 数字数组
49
- * @returns 求和结果
50
+ * @param {array} array 数字数组
51
+ * @returns {number} 求和结果
50
52
  * @example
51
53
  * sum([1, 2, 3, 4, 5]) // 15
52
54
  * @group Array
@@ -54,8 +56,8 @@ export declare function min(array: number[]): number | undefined;
54
56
  export declare function sum(array: number[]): number;
55
57
  /**
56
58
  * 数组平均值
57
- * @param array 数字数组
58
- * @returns 平均值
59
+ * @param {array} array 数字数组
60
+ * @returns {number} 平均值
59
61
  * @example
60
62
  * average([1, 2, 3, 4, 5]) // 3
61
63
  * @group Array
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * 上传Excel文件
3
- * @returns 上传的Excel文件对象
3
+ * @returns {Promise<File | undefined>} 上传的Excel文件对象
4
4
  * @example
5
5
  * uploadExcelFile().then(file => {
6
6
  * if (file) {
@@ -14,7 +14,7 @@
14
14
  export declare function uploadExcelFile(): Promise<File | undefined>;
15
15
  /**
16
16
  * 上传图片文件
17
- * @returns 上传的图片文件对象
17
+ * @returns {Promise<File | undefined>} 上传的图片文件对象
18
18
  * @example
19
19
  * uploadImageFile().then(file => {
20
20
  * if (file) {
@@ -28,7 +28,7 @@ export declare function uploadExcelFile(): Promise<File | undefined>;
28
28
  export declare function uploadImageFile(): Promise<File | undefined>;
29
29
  /**
30
30
  * 上传模型文件
31
- * @returns 上传的模型文件对象
31
+ * @returns {Promise<File | undefined>} 上传的模型文件对象
32
32
  * @example
33
33
  * uploadModelFile().then(file => {
34
34
  * if (file) {
@@ -42,9 +42,9 @@ export declare function uploadImageFile(): Promise<File | undefined>;
42
42
  export declare function uploadModelFile(): Promise<File | undefined>;
43
43
  /**
44
44
  * 下载文件
45
- * @param data 文件数据
46
- * @param name 文件名
47
- * @param mimeType 文件MIME类型,默认为Excel文件类型
45
+ * @param {string | Blob | ArrayBuffer} data 文件数据
46
+ * @param {string} name 文件名
47
+ * @param {string} mimeType 文件MIME类型,默认为Excel文件类型
48
48
  * @example
49
49
  * downloadFile('文件内容', 'example.xlsx');
50
50
  * @group File
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * 复利计算
3
3
  * 复利公式:A = P * (1 + r)^n
4
- * @param principal 本金
5
- * @param rate 年利率
6
- * @param times 复利次数
7
- * @returns 复利金额
4
+ * @param {number} principal 本金
5
+ * @param {number} rate 年利率
6
+ * @param {number} times 复利次数
7
+ * @returns {number} 复利金额
8
8
  * @example
9
9
  * compoundInterest(10000, 0.05, 5) // 12833.03
10
10
  * @group Finance
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 将 URL 参数转换为 JSON 对象
3
- * @param url 包含参数的 URL 字符串
4
- * @returns 转换后的 JSON 对象
3
+ * @param {string} url 包含参数的 URL 字符串
4
+ * @returns {Record<string, string>} 转换后的 JSON 对象
5
5
  * @example
6
6
  * paramToJson('https://example.com?name=John&age=30') // { name: 'John', age: '30' }
7
7
  * @group Link
@@ -9,8 +9,8 @@
9
9
  export declare function paramToJson(url: string): Record<string, string>;
10
10
  /**
11
11
  * 将 JSON 对象转换为 URL 参数字符串
12
- * @param json JSON 对象
13
- * @returns 转换后的 URL 参数字符串
12
+ * @param {Record<string, any>} json JSON 对象
13
+ * @returns {string} 转换后的 URL 参数字符串
14
14
  * @example
15
15
  * jsonToParam({ name: 'John', age: 30 }) // 'name=John&age=30'
16
16
  * @group Link
@@ -1,28 +1,17 @@
1
1
  /**
2
2
  * 生成范围内的随机整数
3
- * @param min 最小值
4
- * @param max 最大值
5
- * @returns 随机整数
3
+ * @param {number} min 最小值
4
+ * @param {number} max 最大值
5
+ * @returns {number} 随机整数
6
6
  * @example
7
7
  * randomInt(1, 10) // 5
8
8
  * @group Math
9
9
  */
10
10
  export declare function randomInt(min: number, max: number): number;
11
- /**
12
- * 限制数值在指定范围内
13
- * @param value 数值
14
- * @param min 最小值
15
- * @param max 最大值
16
- * @returns 限制后的数值
17
- * @example
18
- * clamp(5, 1, 10) // 5
19
- * @group Math
20
- */
21
- export declare function clamp(value: number, min: number, max: number): number;
22
11
  /**
23
12
  * 将角度转换为弧度
24
- * @param degrees 角度
25
- * @returns 弧度
13
+ * @param {number} degrees 角度
14
+ * @returns {number} 弧度
26
15
  * @example
27
16
  * degreesToRadians(180) // 3.141592653589793
28
17
  * @group Math
@@ -30,8 +19,8 @@ export declare function clamp(value: number, min: number, max: number): number;
30
19
  export declare function degreesToRadians(degrees: number): number;
31
20
  /**
32
21
  * 将弧度转换为角度
33
- * @param radians 弧度
34
- * @returns 角度
22
+ * @param {number} radians 弧度
23
+ * @returns {number} 角度
35
24
  * @example
36
25
  * radiansToDegrees(Math.PI) // 180
37
26
  * @group Math
@@ -39,9 +28,9 @@ export declare function degreesToRadians(degrees: number): number;
39
28
  export declare function radiansToDegrees(radians: number): number;
40
29
  /**
41
30
  * 计算两点间距离
42
- * @param point1 点1 {x, y}
43
- * @param point2 点2 {x, y}
44
- * @returns 距离
31
+ * @param {object} point1 点1 {x, y}
32
+ * @param {object} point2 点2 {x, y}
33
+ * @returns {number} 距离
45
34
  * @example
46
35
  * distance({ x: 0, y: 0 }, { x: 3, y: 4 }) // 5
47
36
  * @group Math
@@ -55,9 +44,9 @@ export declare function distance(point1: {
55
44
  }): number;
56
45
  /**
57
46
  * 四舍五入到指定小数位
58
- * @param value 数值
59
- * @param decimals 小数位数
60
- * @returns 四舍五入后的数值
47
+ * @param {number} value 数值
48
+ * @param {number} decimals 小数位数
49
+ * @returns {number} 四舍五入后的数值
61
50
  * @example
62
51
  * round(1.2345, 2) // 1.23
63
52
  * @group Math
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * 深拷贝对象
3
- * @param obj - 需要深拷贝的对象
4
- * @param hash - 用于处理循环引用的哈希表
5
- * @returns 深拷贝后的对象
3
+ * @param {object} obj - 需要深拷贝的对象
4
+ * @param {WeakMap<object, any>} hash - 用于处理循环引用的哈希表
5
+ * @returns {object} 深拷贝后的对象
6
6
  * @example
7
7
  * deepClone({ a: 1, b: { c: 2 } }) // { a: 1, b: { c: 2 } }
8
8
  * @group Object
@@ -10,7 +10,7 @@
10
10
  export declare function deepClone<T>(obj: T, hash?: WeakMap<object, any>): T;
11
11
  /**
12
12
  * 合并对象
13
- * @param objects 待合并的对象
13
+ * @param {...object} objects 待合并的对象
14
14
  * @returns 合并后的对象
15
15
  * @example
16
16
  * merge({ a: 1, b: 2 }, { b: 3, c: 4 }) // { a: 1, b: 3, c: 4 }
@@ -19,8 +19,8 @@ export declare function deepClone<T>(obj: T, hash?: WeakMap<object, any>): T;
19
19
  export declare function merge<T extends Record<string, any>>(...objects: Partial<T>[]): T;
20
20
  /**
21
21
  * 获取对象的所有键
22
- * @param obj 对象
23
- * @returns 键数组
22
+ * @param {object} obj 对象
23
+ * @returns {Array<string>} 键数组
24
24
  * @example
25
25
  * keys({ a: 1, b: 2 }) // ['a', 'b']
26
26
  * @group Object
@@ -28,8 +28,8 @@ export declare function merge<T extends Record<string, any>>(...objects: Partial
28
28
  export declare function keys<T extends Record<string, any>>(obj: T): (keyof T)[];
29
29
  /**
30
30
  * 获取对象的所有值
31
- * @param obj 对象
32
- * @returns 值数组
31
+ * @param {object} obj 对象
32
+ * @returns {Array<T[keyof T]>} 值数组
33
33
  * @example
34
34
  * values({ a: 1, b: 2 }) // [1, 2]
35
35
  * @group Object
@@ -37,9 +37,9 @@ export declare function keys<T extends Record<string, any>>(obj: T): (keyof T)[]
37
37
  export declare function values<T extends Record<string, any>>(obj: T): T[keyof T][];
38
38
  /**
39
39
  * 检查对象是否包含某个键
40
- * @param obj 对象
41
- * @param key 键名
42
- * @returns 是否包含该键
40
+ * @param {object} obj 对象
41
+ * @param {PropertyKey} key 键名
42
+ * @returns {boolean} 是否包含该键
43
43
  * @example
44
44
  * hasKey({ a: 1, b: 2 }, 'a') // true
45
45
  * @group Object
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * 设置本地存储
3
- * @param key 键
4
- * @param value 值
5
- * @param isSession 是否使用sessionStorage,默认false
3
+ * @param {string} key 键
4
+ * @param {T} value 值
5
+ * @param {boolean} isSession 是否使用sessionStorage,默认false
6
6
  * @example
7
7
  * setStorage('token', '123456') // 存储token到localStorage
8
8
  * setStorage('user', { id: 1, name: '张三' }, true) // 存储用户信息到sessionStorage
@@ -11,9 +11,9 @@
11
11
  export declare function setStorage<T>(key: string, value: T, isSession?: boolean): void;
12
12
  /**
13
13
  * 获取本地存储
14
- * @param key 键
15
- * @param isSession 是否使用sessionStorage,默认false
16
- * @returns 存储的值
14
+ * @param {string} key 键
15
+ * @param {boolean} isSession 是否使用sessionStorage,默认false
16
+ * @returns {T | null} 存储的值
17
17
  * @example
18
18
  * getStorage('token') // '123456'
19
19
  * getStorage('user', true) // { id: 1, name: '张三' }
@@ -22,8 +22,8 @@ export declare function setStorage<T>(key: string, value: T, isSession?: boolean
22
22
  export declare function getStorage<T>(key: string, isSession?: boolean): T | null;
23
23
  /**
24
24
  * 删除本地存储
25
- * @param key 键
26
- * @param isSession 是否使用sessionStorage,默认false
25
+ * @param {string} key 键
26
+ * @param {boolean} isSession 是否使用sessionStorage,默认false
27
27
  * @example
28
28
  * removeStorage('token') // 删除localStorage中的token
29
29
  * removeStorage('user', true) // 删除sessionStorage中的user
@@ -32,7 +32,7 @@ export declare function getStorage<T>(key: string, isSession?: boolean): T | nul
32
32
  export declare function removeStorage(key: string, isSession?: boolean): void;
33
33
  /**
34
34
  * 清空本地存储
35
- * @param isSession 是否使用sessionStorage,默认false
35
+ * @param {boolean} isSession 是否使用sessionStorage,默认false
36
36
  * @example
37
37
  * clearStorage() // 清空localStorage
38
38
  * clearStorage(true) // 清空sessionStorage
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * 检测变量类型
3
- * @param value 待检测的值
4
- * @returns 类型字符串
3
+ * @param {unknown} value 待检测的值
4
+ * @returns {string} 类型字符串
5
5
  * @example
6
6
  * getType({}) // 'object'
7
7
  * getType([]) // 'array'
@@ -15,140 +15,96 @@
15
15
  export declare function getType(value: unknown): string;
16
16
  /**
17
17
  * 判断是否为数组
18
- * @param value 待检测的值
19
- * @returns
18
+ * @param {unknown} value 待检测的值
19
+ * @returns {boolean} 是否为数组
20
20
  * @example
21
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
22
  * isArray(undefined) // false
29
23
  * @group Type
30
24
  */
31
25
  export declare function isArray(value: unknown): value is unknown[];
32
26
  /**
33
27
  * 判断是否为对象
34
- * @param value 待检测的值
35
- * @returns
28
+ * @param {unknown} value 待检测的值
29
+ * @returns {boolean} 是否为对象
36
30
  * @example
37
31
  * isObject({}) // true
38
32
  * 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
33
  * isObject(undefined) // false
45
34
  * @group Type
46
35
  */
47
36
  export declare function isObject(value: unknown): value is Record<string, unknown>;
48
37
  /**
49
38
  * 判断是否为函数
50
- * @param value 待检测的值
51
- * @returns
39
+ * @param {unknown} value 待检测的值
40
+ * @returns {boolean} 是否为函数
52
41
  * @example
53
42
  * isFunction(() => {}) // true
54
43
  * isFunction(function () {}) // true
55
44
  * isFunction(class {}) // true
56
45
  * 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
46
  * @group Type
64
47
  */
65
48
  export declare function isFunction(value: unknown): value is Function;
66
49
  /**
67
50
  * 判断是否为字符串
68
- * @param value 待检测的值
69
- * @returns
51
+ * @param {unknown} value 待检测的值
52
+ * @returns {boolean} 是否为字符串
70
53
  * @example
71
- * isString('') // true
72
54
  * isString('hello') // true
73
55
  * isString(0) // false
74
- * isString(true) // false
75
- * isString(null) // false
76
- * isString(undefined) // false
77
56
  * @group Type
78
57
  */
79
58
  export declare function isString(value: unknown): value is string;
80
59
  /**
81
60
  * 判断是否为数字
82
- * @param value 待检测的值
83
- * @returns
61
+ * @param {unknown} value 待检测的值
62
+ * @returns {boolean} 是否为数字
84
63
  * @example
85
64
  * isNumber(0) // true
86
65
  * isNumber(123) // true
87
- * isNumber(-123) // true
88
- * isNumber(123.456) // true
89
- * isNumber(-123.456) // true
90
66
  * isNumber('123') // false
91
- * isNumber('123.456') // false
92
- * isNumber(true) // false
93
- * isNumber(null) // false
94
- * isNumber(undefined) // false
95
67
  * @group Type
96
68
  */
97
69
  export declare function isNumber(value: unknown): value is number;
98
70
  /**
99
71
  * 判断是否为布尔值
100
- * @param value 待检测的值
101
- * @returns
72
+ * @param {unknown} value 待检测的值
73
+ * @returns {boolean} 是否为布尔值
102
74
  * @example
103
75
  * isBoolean(true) // true
104
76
  * isBoolean(false) // true
105
- * isBoolean(0) // false
106
77
  * isBoolean(1) // false
107
- * isBoolean('true') // false
108
- * isBoolean('false') // false
109
- * isBoolean(null) // false
110
- * isBoolean(undefined) // false
111
78
  * @group Type
112
79
  */
113
80
  export declare function isBoolean(value: unknown): value is boolean;
114
81
  /**
115
82
  * 判断是否为null
116
- * @param value 待检测的值
117
- * @returns
83
+ * @param {unknown} value 待检测的值
84
+ * @returns {boolean} 是否为null
118
85
  * @example
119
86
  * isNull(null) // true
120
87
  * isNull(undefined) // false
121
- * isNull('') // false
122
- * isNull(0) // false
123
- * isNull(true) // false
124
88
  * @group Type
125
89
  */
126
90
  export declare function isNull(value: unknown): value is null;
127
91
  /**
128
92
  * 判断是否为undefined
129
- * @param value 待检测的值
130
- * @returns
93
+ * @param {unknown} value 待检测的值
94
+ * @returns {boolean} 是否为undefined
131
95
  * @example
132
96
  * isUndefined(undefined) // true
133
97
  * isUndefined(null) // false
134
98
  * isUndefined('') // false
135
- * isUndefined(0) // false
136
- * isUndefined(true) // false
137
99
  * @group Type
138
100
  */
139
101
  export declare function isUndefined(value: unknown): value is undefined;
140
102
  /**
141
103
  * 判断是否为空(null, undefined, 空字符串, 空数组, 空对象)
142
- * @param value 待检测的值
143
- * @returns
104
+ * @param {unknown} value 待检测的值
105
+ * @returns {boolean} 是否为空
144
106
  * @example
145
107
  * 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
108
  * isEmpty({ a: 1, b: 2 }) // false
153
109
  * @group Type
154
110
  */