@mt-utils/tools
v1.0.6
Published
明途公共工具库
Downloads
192
Readme
@mt-utils/tools工具库
欢迎使用@mt-utils/tools工具库,旨在提供一系列实用的函数,以简化日常开发任务。
安装
使用 pnpm 安装最新版本的 @mt-utils/tools:
pnpm install @mt-utils/tools
功能概览
chunkArray
chunkArray<T>(array: T[], chunkSize: number = 1): T[][]
这个函数接受一个数组和一个指定的块大小,然后返回一个二维数组。每个子数组包含原数组中的一部分元素,大小由 chunkSize
参数决定。如果数组的长度不是 chunkSize
的整数倍,最后一个块可能包含的元素少于 chunkSize
。
参数
array (Array)
: 要分割的源数组。chunkSize (number)
: 每个块的大小,默认值为 1。
返回
(Array)
: 返回一个二维数组,每个子数组是原数组的一部分元素。
例子
chunkArray(['a', 'b', 'c', 'd'], 2)
// => [['a', 'b'], ['c', 'd']]
chunkArray(['a', 'b', 'c', 'd', 'e'], 3)
// => [['a', 'b', 'c'], ['d', 'e']]
chunkArray([1, 2, 3, 4, 5], 4)
// => [[1, 2, 3, 4], [5]]
getUuid
getUuid(): string
利用 Web Crypto API,生成一个随机的 32 位无符号整数,并将其转换为一个基于 36 进制的字符串。这种格式的字符串通常用于标识,并且可以保证在很大范围内的唯一性。
返回
(string)
: 返回一个随机生成的 UUID 字符串。
例子
const uuid = getUuid()
console.log(uuid) // 输出类似于 "1gann4cq9b6r"
createWorker
createWorker(fun: (...args: any) => any): Worker
创建并返回一个新的 Worker 实例,fun
指的的任意函数,也就是要在 Worker 中执行的 JavaScript 函数。
参数
fun (Function)
: 要在 Worker 中执行的 JavaScript 函数。
返回
(Worker)
: 返回新创建的 Worker 实例。
例子
const myWorker = createWorker(function () {
console.log('Hello from the Web Worker!')
})
closeWorker
关闭并终止传入 Web Worker 实例的执行,通常配合createWorker
一起使用
closeWorker(worker: Worker | undefined | null): void
参数
worker (Worker | undefined | null)
: 要关闭的 Worker 实例。
例子
const myWorker = createWorker(function () {
console.log('Hello from the Web Worker!')
})
// 当不再需要 Worker 时
closeWorker(myWorker)
isWebSocketSupported
isWebSocketSupported(): boolean
检查当前浏览器是否支持 WebSocket
返回
(boolean)
: 如果浏览器支持 WebSocket,则返回 true
;否则返回 false
。
例子
if (isWebSocketSupported()) {
console.log('WebSocket is supported!')
} else {
console.log('WebSocket is not supported!')
}
createWebSocket
createWebSocket(url: string): WebSocket
创建一个新的 WebSocket 实例。此函数接受一个 WebSocket 服务器的 URL 并创建一个新的 WebSocket 实例。
参数
url (string)
: WebSocket 服务器的 URL。
返回
(WebSocket)
: 返回一个新的 WebSocket 实例。
例子
const socket = createWebSocket('ws://example.com')
// 使用 socket 进行通信...
isNumber
isNumber(value: unknown): value is number
判断给定的值是否是一个数字。
参数
value (unknown)
: 要检查的值。
返回
(value is number)
: 如果 value
是一个数字,则返回 true
,否则返回 false
。
例子
isNumber(123) // => true
isNumber('123') // => false
isString
isString(value: unknown): value is string
判断给定的值是否是一个字符串。
参数
value (unknown)
: 要检查的值。
返回
(value is string)
: 如果 value
是一个字符串,则返回 true
,否则返回 false
。
例子
isString('hello') // => true
isString(123) // => false
isObject
isObject(value: unknown): value is object
判断给定的值是否是一个对象。
参数
value (unknown)
: 要检查的值。
返回
(value is object)
: 如果 value
是一个普通对象,则返回 true
,否则返回 false
。
例子
isObject({ a: 1 }) // => true
isObject(null) // => false
isArray
isArray(value: unknown): value is Array<unknown>
判断给定的值是否是一个数组。
参数
value (unknown)
: 要检查的值。
返回
(value is Array<unknown>)
: 如果 value
是一个数组,则返回 true
,否则返回 false
。
例子
isArray([1, 2, 3]) // => true
isArray('123') // => false
checkArrayEmpty
checkArrayEmpty(value: unknown): value is Array<unknown>
检查数组是否为空。
参数
value (unknown)
: 要检查的值。
返回
(value is Array<unknown>)
: 如果 value
是一个数组并且长度为0,则返回 true
,否则返回 false
。
例子
checkArrayEmpty([]) // => true
checkArrayEmpty([1, 2, 3]) // => false
checkObjectEmpty
checkObjectEmpty(value: unknown): value is Record<string, unknown>
检查对象是否为空。一个空对象是指没有任何自身属性的对象。
参数
value (unknown)
: 要检查的值。
返回
(value is Record<string, unknown>)
: 如果 value
是一个空对象,则返回 true
,否则返回 false
。
例子
checkObjectEmpty({}) // => true
checkObjectEmpty({ a: 1 }) // => false
checkEmpty
checkEmpty(value: unknown): boolean
检查给定的值是否为空。空值包括:空字符串、空数组、空对象、null 或 undefined。
参数
value (unknown)
: 要检查的值。
返回
(boolean)
: 如果 value
是空的,则返回 true
,否则返回 false
。
例子
checkEmpty('') // => true
checkEmpty(null) // => true
checkEmpty({}) // => true
checkEmpty([]) // => true
checkEmpty('text') // => false
checkEmptyNotZero
checkEmptyNotZero(value: unknown): boolean
检查给定的值是否为空,但不包括数字 0。空值包括:空字符串、空数组、空对象、null 或 undefined。
参数
value (unknown)
: 要检查的值。
返回
(boolean)
: 如果 value
是空的,且不是数字 0,则返回 true
,否则返回 false
。
例子
checkEmptyNotZero('') // => true
checkEmptyNotZero(0) // => false
checkEmptyNotZero(null) // => true
checkEmptyNotZero({}) // => true
checkEmptyNotZero([]) // => true
checkEmptyNotZero('text') // => false
deepFreeze
deepFreeze<T extends Record<string, any>>(value: T): Readonly<T>
深度冻结一个对象,防止其属性及嵌套属性被修改。递归地冻结对象的所有属性,包括嵌套对象,确保对象的状态不可变。
参数
value (T)
: 需要被冻结的对象。
返回
(Readonly<T>)
: 返回深度冻结后的对象。
例子
const obj = { name: 'Kimi', details: { age: 30 } };
const frozenObj = deepFreeze(obj);
console.log(Object.isFrozen(frozenObj)); // 输出:true
console.log(Object.isFrozen(frozenObj.details)); // 输出:true
copyText
copyText(text: string): Promise<string>
将指定的文本复制到剪贴板。
参数
text (string)
: 需要复制到剪贴板的文本。
返回
Promise<string>
: 一个 Promise 对象,当文本成功复制到剪贴板时解析为被复制的文本,如果复制失败则拒绝 Promise。
例子
copyText('Hello, World!').then(
(text) => console.log('Text copied to clipboard:', text),
(error) => console.error('Failed to copy text:', error)
);