DefinitelyTyped/types/classnames/types.d.ts
uhyo cf258953db [classnames] improve types for classnames/bind and add types for classnames/dedupe (#36458)
* enable classnames/bind usage without bind

* add test for classnames/bind

* add classnames/dedupe support

* same default export trick for classnames/bind

* add me to definition author

* add dedupe.d.ts to files
2019-07-02 09:41:39 -07:00

14 lines
576 B
TypeScript

// This is the only way I found to break circular references between ClassArray and ClassValue
// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540
export interface ClassArray extends Array<ClassValue> {} // tslint:disable-line no-empty-interface
export interface ClassDictionary {
[id: string]: any;
}
export type ClassValue = string | number | ClassDictionary | ClassArray | undefined | null | boolean;
export type ClassNamesFn = (...classes: ClassValue[]) => string;
export type ClassNamesExport = ClassNamesFn & { default: ClassNamesFn };