ant-design-vue/packages/ui/src/utils/classNames.ts

28 lines
658 B
TypeScript

import { isArray, isString, isObject } from './util'
function classNames(...args: any[]) {
const classes = []
for (let i = 0; i < args.length; i++) {
const value = args[i]
if (!value) continue
if (isString(value)) {
classes.push(value)
} else if (isArray(value)) {
for (let i = 0; i < value.length; i++) {
const inner = classNames(value[i])
if (inner) {
classes.push(inner)
}
}
} else if (isObject(value)) {
for (const name in value) {
if (value[name]) {
classes.push(name)
}
}
}
}
return classes.join(' ')
}
export default classNames