]> source.dussan.org Git - svg.js.git/commitdiff
Better typing for css getter/setter 1116/head
authorGlandos <bugs-github@antipoul.fr>
Wed, 27 May 2020 14:48:26 +0000 (16:48 +0200)
committerGitHub <noreply@github.com>
Wed, 27 May 2020 14:48:26 +0000 (16:48 +0200)
CSSStyleDeclaration contains readonly rule, so I excluded them, otherwise it doesn't make sense
I didn't touch the Runner `css()` because I don't know the exact behavior of it.

svg.js.d.ts

index 0dddfdc7f9265a5d695812b835948fb718d55967..0aed23b3322b182fea49b7a61117e0ec9be86520 100644 (file)
@@ -4,6 +4,9 @@
 // trick to keep reference to Array build-in type\r
 declare class BuiltInArray<T> extends Array<T> { }\r
 \r
+// trick to have nice attribute list for CSS\r
+declare type CSSStyleName = Exclude<keyof CSSStyleDeclaration, "parentRule" | "length" >\r
+\r
 declare module "@svgdotjs/svg.js" {\r
 \r
     function SVG(): Svg;\r
@@ -1008,11 +1011,11 @@ declare module "@svgdotjs/svg.js" {
         toggleClass(name: string): this\r
 \r
         // prototype method register in css.js\r
-        css(): object;\r
-        css(style: string): string\r
-        css(style: string[]): object;\r
-        css(style: string, val: any): this\r
-        css(style: object): this\r
+        css(): Partial<CSSStyleDeclaration>\r
+        css<T extends CSSStyleName>(style: T): CSSStyleDeclaration[T]\r
+        css<T extends CSSStyleName[]>(style: T): Partial<CSSStyleDeclaration>\r
+        css<T extends CSSStyleName>(style: T, val: CSSStyleDeclaration[T]): this\r
+        css(style: Partial<CSSStyleDeclaration>): this\r
         show(): this\r
         hide(): this\r
         visible(): boolean\r