/** * 属性转驼峰 */ export type DOMUtilsCamelToKebabCSSProperty = S extends `webkit${infer U}` ? `-${Lowercase<"webkit">}${U extends `${infer First}${infer Rest}` ? First extends Uppercase ? `-${Uncapitalize}${DOMUtilsCamelToKebabCSSProperty}` : `${First}${DOMUtilsCamelToKebabCSSProperty}` : U}` : S extends `${infer T}${infer U}` ? U extends Uncapitalize ? `${Uncapitalize}${DOMUtilsCamelToKebabCSSProperty}` : `${Uncapitalize}-${DOMUtilsCamelToKebabCSSProperty}` : S; export type DOMUtilsCSSPropertyType = DOMUtilsCamelToKebabCSSProperty< Extract< keyof Omit< CSSStyleDeclaration, | "cssFloat" | "cssText" | "length" | "parentRule" | "getPropertyPriority" | "getPropertyValue" | "item" | "removeProperty" | "setProperty" >, string > >; export type DOMUtilsCSSProperty = { [P in DOMUtilsCSSPropertyType]: string | number; };