UNPKG

shineout

Version:

Shein 前端组件库

27 lines (20 loc) 862 B
import { v4 as getUUid } from 'uuid' import { KeygenType } from '../@types/common' export function getUidStr(...args: Parameters<typeof getUUid>) { // dom id cannot start with number return `a${getUUid(...args)}` } function $getKey<T>(d: T, gen: KeygenType<T> | undefined, index?: number) { if (gen === true) return d if (typeof gen === 'string') return d[gen] if (typeof gen === 'function') return gen(d, index) return index } export function getKey<T>(...args: [T, KeygenType<T> | undefined, number?]) { const key = $getKey(...args) as string | number if (typeof key !== 'string' && typeof key !== 'number') { console.error(new Error(`keygen result expect a string or a number, get '${typeof key}'`)) } return key } export const defer = typeof Promise === 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout