react-classnaming
Version:
Tools to establish CSS classes as an explicit abstraction layer and to handle it as an interface between React and CSSStyleDeclaration
26 lines (25 loc) • 883 B
TypeScript
import type { ClassHash } from "./main.types";
import type { CssModule } from "./definitions.types";
export { classNamesCheck };
/**
* Identical function or returning constant `EMPTY_OBJECT` for keys check of not used classes in components tree
* @example
* ```tsx
* // Dummies shape
* <Component classnames={classNamesCheck()} />;
* ```
* ---
* ```tsx
* import type { ClassNamesFrom } from "react-classnaming/types"
* import css_module from "./some.css" // With class `.never-used {...}`
*
* <Component classnames={classNamesCheck(
* css_module,
* //@ts-expect-error Property 'never-used' is missing
* {} as ClassNamesFrom<typeof Component>
* )} />;
* ```
*/
declare function classNamesCheck<Target extends {
[K in keyof Module]: ClassHash;
}, Module extends CssModule>(source?: Module, _?: Target): string extends keyof Module ? Target : Module;