]> source.dussan.org Git - svg.js.git/commitdiff
fix: CSSStyleName typescript 1321/head
author <951540966@qq.com>
Wed, 17 Jul 2024 06:15:50 +0000 (14:15 +0800)
committerGitHub <noreply@github.com>
Wed, 17 Jul 2024 06:15:50 +0000 (14:15 +0800)
svg.js.d.ts

index c731b25d776c200190f05c5ab225c71a22cf2824..b3f17e930067ab5f1bebf73749ed923f8a736922 100644 (file)
@@ -4,26 +4,27 @@
 // trick to keep reference to Array build-in type
 declare class BuiltInArray<T> extends Array<T> {}
 
-// trick to have nice attribute list for CSS
-declare type CSSStyleName = Exclude<
-  keyof CSSStyleDeclaration,
-  'parentRule' | 'length'
->
-
 // camelCase to kebab-case
-type CamelToKebab<S extends string> = S extends `${infer T}${infer U}`
-       ? U extends Uncapitalize<U>
-       ? `${Lowercase<T>}${CamelToKebab<U>}`
-       : `${Lowercase<T>}-${CamelToKebab<U>}`
-       : S;
-
-type ConvertKeysToKebab<T> = {
-       [K in keyof T as CamelToKebab<K & string>]: T[K];
+declare type CamelToKebab<S extends string> = S extends `${infer T}${infer U}`
+  ? U extends Uncapitalize<U>
+  ? `${Lowercase<T>}${CamelToKebab<U>}`
+  : `${Lowercase<T>}-${CamelToKebab<U>}`
+  : S;
+
+declare type ConvertKeysToKebab<T> = {
+  [K in keyof T as CamelToKebab<K & string>]: T[K];
 };
 
+declare type KebabCSSStyleDeclaration = ConvertKeysToKebab<CSSStyleDeclaration>
+
+// trick to have nice attribute list for CSS
+declare type CSSStyleName = Exclude<
+  keyof KebabCSSStyleDeclaration,
+  'parent-rule' | 'length'
+>
 
 // create our own style declaration that includes css vars
-interface CSSStyleDeclarationWithVars extends ConvertKeysToKebab<CSSStyleDeclaration> {
+interface CSSStyleDeclarationWithVars extends KebabCSSStyleDeclaration {
   [key: `--${string}`]: string
 }