Variable default

default: {
    camelToSnake: ((str: string) => string);
    capitalize: ((str: string) => string);
    convertToUpperCase: ((str: string) => string);
    currenMonthUID: (() => string);
    debounce: (<T>(fn: T, delay: number) => ((...args: Parameters<T>) => void));
    difference: (<T>(arr1: T[], arr2: T[]) => T[]);
    flattenArray: (<T>(array: (T | T[])[]) => T[]);
    formatDate: ((timestamp: number, format: string) => string);
    formatTimeZoneOffset: (() => string);
    generateUID: (() => string);
    intersection: (<T>(arr1: T[], arr2: T[]) => T[]);
    isMobile: (() => boolean);
    kebabCase: ((str: string) => string);
    padZero: ((num: string | number) => string);
    queryParams: ((key: string) => null | string);
    randomString: ((length: number) => string);
    snakeToCamel: ((str: string) => string);
    sortArray: (<T>(array: T[], compareFn?: ((a: T, b: T) => number)) => T[]);
    throttle: (<T>(fn: T, limit: number) => ((...args: Parameters<T>) => void));
    uniqueArray: (<T>(array: T[]) => T[]);
}

Type declaration

  • camelToSnake: ((str: string) => string)

    将驼峰字符串转换为下划线格式

    const result = camelToSnake('camelCaseString')
    console.log(result) // 输出 "camel_case_string"
      • (str): string
      • Parameters

        • str: string

          输入字符串

        Returns string

        转换后的下划线字符串

  • capitalize: ((str: string) => string)

    将字符串首字母大写

    返回首字母大写后的字符串。

    const result = capitalize('hello')
    console.log(result) // 输出 "Hello"
      • (str): string
      • Parameters

        • str: string

          输入字符串

        Returns string

        首字母大写后的字符串

  • convertToUpperCase: ((str: string) => string)

    将整个字符串转换为大写

    将输入字符串中的所有字符转换为大写形式。

    const result = convertToUpperCase("hello");
    console.log(result); // 输出 "HELLO"
      • (str): string
      • Parameters

        • str: string

          输入的字符串

        Returns string

        转换后的大写字符串

  • currenMonthUID: (() => string)

    生成唯一标识符 (UID)

    生成格式为 yyyymm + 6位随机字母和数字 的唯一标识符。

    yyyymm 表示当前的年份和月份,6位随机字母和数字 是通过哈希随机生成的。

    const uid = currenMonthUID();
    console.log(uid); // 输出类似 "202411a1b2c3"
      • (): string
      • Returns string

        生成的 UID 字符串

  • debounce: (<T>(fn: T, delay: number) => ((...args: Parameters<T>) => void))

    防抖函数

    延迟执行函数,只有在指定时间内未再次触发时才会执行。

    const debouncedFn = debounce(() => console.log('Debounced!'), 1000)
    window.addEventListener('resize', debouncedFn)
      • <T>(fn, delay): ((...args: Parameters<T>) => void)
      • Type Parameters

        • T extends ((...args: any[]) => void)

        Parameters

        • fn: T

          要执行的函数

        • delay: number

          防抖延迟时间(毫秒)

        Returns ((...args: Parameters<T>) => void)

        防抖后的函数

          • (...args): void
          • Parameters

            • Rest...args: Parameters<T>

            Returns void

  • difference: (<T>(arr1: T[], arr2: T[]) => T[])

    获取数组的差集

    返回 arr1 中存在但 arr2 中不存在的元素。

    const array1 = [1, 2, 3, 4]
    const array2 = [3, 4, 5, 6]
    const result = difference(array1, array2)
    console.log(result) // 输出 [1, 2]
      • <T>(arr1, arr2): T[]
      • Type Parameters

        • T

        Parameters

        • arr1: T[]

          数组1

        • arr2: T[]

          数组2

        Returns T[]

        差集数组

  • flattenArray: (<T>(array: (T | T[])[]) => T[])

    数组扁平化

    使用递归方法将嵌套的数组扁平化为单层数组。

    const nestedArray = [1, [2, [3, [4]], 5]];
    const flatArray = flattenArray(nestedArray);
    console.log(flatArray); // 输出 [1, 2, 3, 4, 5]
    const simpleArray = [1, 2, 3];
    const flatArray = flattenArray(simpleArray);
    console.log(flatArray); // 输出 [1, 2, 3]
      • <T>(array): T[]
      • Type Parameters

        • T

        Parameters

        • array: (T | T[])[]

          需要扁平化的数组,可以包含嵌套数组。

        Returns T[]

        扁平化后的单层数组

  • formatDate: ((timestamp: number, format: string) => string)

    格式化时间戳为指定格式

    兼容 date-fns 格式化字符串,比如 'yyyy-MM-dd HH:mm:ss'。

    const result = formatDate(1672531200000, 'yyyy-MM-dd');
    console.log(result); // 输出 "2023-01-01"

    const result2 = formatDate(1672531200000, 'yyyy/MM/dd HH:mm');
    console.log(result2); // 输出 "2023/01/01 00:00"
      • (timestamp, format): string
      • Parameters

        • timestamp: number

          时间戳

        • format: string

          格式化字符串,如 'yyyy-MM-dd HH:mm:ss' 或 date-fns 格式

        Returns string

        格式化后的日期字符串

  • formatTimeZoneOffset: (() => string)

    格式化时区偏移

    获取当前设备的时区偏移,并以 UTC±hh:mm 格式返回。

    const timeZone = formatTimeZoneOffset();
    console.log(timeZone); // 输出类似 "UTC+08:00" 或 "UTC-05:00"
      • (): string
      • Returns string

        格式化后的时区偏移字符串

  • generateUID: (() => string)

    生成全局唯一标识符 (UID)

    使用当前时间戳和随机字符串的组合,确保生成的字符串具有唯一性。

    const uid = generateUID()
    console.log(uid) // 类似 "kxidq52e9xr73mpk"
      • (): string
      • Returns string

        一个由时间戳和随机字符串组成的唯一标识符

  • intersection: (<T>(arr1: T[], arr2: T[]) => T[])

    获取两个数组的交集

    返回两个数组中都存在的元素。

    const array1 = [1, 2, 3, 4]
    const array2 = [3, 4, 5, 6]
    const result = intersection(array1, array2)
    console.log(result) // 输出 [3, 4]
      • <T>(arr1, arr2): T[]
      • Type Parameters

        • T

        Parameters

        • arr1: T[]

          数组1

        • arr2: T[]

          数组2

        Returns T[]

        两数组的交集

  • isMobile: (() => boolean)

    判断是否为移动端设备

    检测用户代理字符串中是否包含常见的移动设备标识,以判断当前环境是否为移动端设备。

    const isMobileDevice = isMobile();
    console.log(isMobileDevice); // 在移动端返回 true,在桌面端返回 false
      • (): boolean
      • Returns boolean

        如果是移动端设备返回 true,否则返回 false

  • kebabCase: ((str: string) => string)

    将字符串转换为 kebab-case

    将输入字符串转换为 kebab-case(以连字符 - 分隔的形式), 处理大小写转换、去除多余的空格或下划线,并规范化连字符的使用。

    const result = kebabCase("HelloWorld");
    console.log(result); // 输出 "hello-world"
    const result = kebabCase("hello world_example");
    console.log(result); // 输出 "hello-world-example"
      • (str): string
      • Parameters

        • str: string

          输入的字符串

        Returns string

        转换后的 kebab-case 字符串

  • padZero: ((num: string | number) => string)

    补全个位数为两位数字

    如果输入的数字是个位数(无论是数字类型还是字符串类型),则在前面补 0; 十位及以上数字保持原样。如果输入为非数字的字符串(如字母),则返回 Invalid Input

    const result1 = padZero(5)
    console.log(result1) // 输出 "05"

    const result2 = padZero("7")
    console.log(result2) // 输出 "07"

    const result3 = padZero(15)
    console.log(result3) // 输出 "15"

    const result4 = padZero("123")
    console.log(result4) // 输出 "123"

    const result5 = padZero("abc")
    console.log(result5) // 输出 "Invalid Input"
      • (num): string
      • Parameters

        • num: string | number

          输入的数字,可以是数字类型或字符串数字

        Returns string

        补全后的两位字符串或错误提示

  • queryParams: ((key: string) => null | string)

    获取 URL 查询参数值

    解析当前页面的查询参数并返回指定参数的值。

    // 假设当前 URL 是 'http://example.com?page=2&size=10'
    const page = queryParams('page')
    console.log(page) // 输出 "2"

    const size = queryParams('size')
    console.log(size) // 输出 "10"

    const nonExistent = queryParams('nonExistent')
    console.log(nonExistent) // 输出 null
      • (key): null | string
      • Parameters

        • key: string

          要获取的查询参数的名称

        Returns null | string

        查询参数的值,如果不存在则返回 null

  • randomString: ((length: number) => string)

    生成随机字符串

    生成指定长度的随机字符串,由数字和字母组成。

    const result = randomString(8)
    console.log(result) // 输出类似 "a1b2c3d4"
      • (length): string
      • Parameters

        • length: number

          字符串长度

        Returns string

        随机字符串

  • snakeToCamel: ((str: string) => string)

    将下划线字符串转换为驼峰格式

    const result = snakeToCamel('snake_case_string')
    console.log(result) // 输出 "snakeCaseString"
      • (str): string
      • Parameters

        • str: string

          输入字符串

        Returns string

        转换后的驼峰字符串

  • sortArray: (<T>(array: T[], compareFn?: ((a: T, b: T) => number)) => T[])

    对数组进行排序

    使用 Array.sort 方法对数组进行升序排序,支持数字和字符串数组的排序。

    const numbers = [5, 3, 8, 1];
    const sortedNumbers = sortArray(numbers);
    console.log(sortedNumbers); // 输出 [1, 3, 5, 8]
    const strings = ["banana", "apple", "orange"];
    const sortedStrings = sortArray(strings);
    console.log(sortedStrings); // 输出 ["apple", "banana", "orange"]
    const customSorted = sortArray([3, 1, 4, 2], (a, b) => b - a);
    console.log(customSorted); // 输出 [4, 3, 2, 1]
      • <T>(array, compareFn?): T[]
      • Type Parameters

        • T

        Parameters

        • array: T[]

          需要排序的数组

        • OptionalcompareFn: ((a: T, b: T) => number)

          可选的比较函数,如果未提供,将进行默认排序。

            • (a, b): number
            • Parameters

              Returns number

        Returns T[]

        排序后的数组

  • throttle: (<T>(fn: T, limit: number) => ((...args: Parameters<T>) => void))

    节流函数

    限制函数在指定时间间隔内只能执行一次。

    const throttledFn = throttle(() => console.log('Throttled!'), 1000)
    window.addEventListener('scroll', throttledFn)
      • <T>(fn, limit): ((...args: Parameters<T>) => void)
      • Type Parameters

        • T extends ((...args: any[]) => void)

        Parameters

        • fn: T

          要执行的函数

        • limit: number

          节流时间间隔(毫秒)

        Returns ((...args: Parameters<T>) => void)

        节流后的函数

          • (...args): void
          • Parameters

            • Rest...args: Parameters<T>

            Returns void

  • uniqueArray: (<T>(array: T[]) => T[])

    数组去重

    使用 Array.reduce 方法实现数组去重,保留数组中第一次出现的唯一值。

    const numbers = [1, 2, 2, 3, 4, 4, 5];
    const uniqueNumbers = uniqueArray(numbers);
    console.log(uniqueNumbers); // 输出 [1, 2, 3, 4, 5]
    const strings = ["apple", "banana", "apple", "orange"];
    const uniqueStrings = uniqueArray(strings);
    console.log(uniqueStrings); // 输出 ["apple", "banana", "orange"]
      • <T>(array): T[]
      • Type Parameters

        • T

        Parameters

        • array: T[]

          需要去重的数组

        Returns T[]

        去重后的新数组