/
dedaMazai
/
ResizeTable
Обзор
Документация
Войти
/
dedaMazai
/
ResizeTable
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/shared/classNames/classNames.ts
24 строки
734 B
Andrey Chipizubov
initProject
07 дек 2023, 22:32
07 дек 2023, 22:32
b5e3fb9
Код
Авторство
О чём код?
export type Mods = Record<string, boolean | string | undefined>; export type Argument = string | Mods | Array<string | undefined> | undefined; export function classNames(...args: Array<Argument>): string { return args .map((arg) => { if (typeof arg === 'string') { return arg; } if (Array.isArray(arg)) { return arg.filter(Boolean).join(' '); } if (typeof arg === 'object') { return Object.entries(arg) .filter(([_, value]) => !!value) .map(([className]) => className) .join(' '); } return ''; }) .join(' '); }