@@ -147,34 +147,41 @@ export class Context<
147147 }
148148
149149 /** Queries a single required element by CSS selector. Throws if not found. */
150- getElement < E extends keyof HTMLElementTagNameMap > ( selector : E | string ) : HTMLElementTagNameMap [ E ] ;
151- getElement < E extends keyof HTMLElementTagNameMap > (
150+ getElement < const Tag extends keyof HTMLElementTagNameMap > (
151+ selector : Tag ,
152+ ) : HTMLElementTagNameMap [ Tag ] ;
153+ getElement < const Tag extends keyof HTMLElementTagNameMap > (
152154 root : DocumentFragment | Element ,
153- selector : E | string ,
154- ) : HTMLElementTagNameMap [ E ] ;
155- getElement < E extends keyof HTMLElementTagNameMap > (
156- selectorOrRoot : E | string | DocumentFragment | Element ,
157- maybeSelector ?: E | string ,
158- ) : HTMLElementTagNameMap [ E ] {
159- return this . getElements < E > ( selectorOrRoot as any , maybeSelector as any ) [ 0 ] ! ;
155+ selector : Tag ,
156+ ) : HTMLElementTagNameMap [ Tag ] ;
157+ getElement < E extends Element > ( selector : string ) : E ;
158+ getElement < E extends Element > ( root : DocumentFragment | Element , selector : string ) : E ;
159+ getElement ( selector : string ) : Element ;
160+ getElement ( root : DocumentFragment | Element , selector : string ) : Element ;
161+ getElement ( selectorOrRoot : string | DocumentFragment | Element , maybeSelector ?: string ) : Element {
162+ return this . getElements ( selectorOrRoot as any , maybeSelector as any ) [ 0 ] ! ;
160163 }
161164
162165 /** Queries all matching elements by CSS selector. Throws if none found. */
163- getElements < E extends keyof HTMLElementTagNameMap > (
164- selector : E | string ,
165- ) : HTMLElementTagNameMap [ E ] [ ] ;
166- getElements < E extends keyof HTMLElementTagNameMap > (
166+ getElements < const Tag extends keyof HTMLElementTagNameMap > (
167+ selector : Tag ,
168+ ) : HTMLElementTagNameMap [ Tag ] [ ] ;
169+ getElements < const Tag extends keyof HTMLElementTagNameMap > (
167170 root : DocumentFragment | Element ,
168- selector : E | string ,
169- ) : HTMLElementTagNameMap [ E ] [ ] ;
170- getElements < E extends keyof HTMLElementTagNameMap > (
171- selectorOrRoot : E | string | DocumentFragment | Element ,
172- maybeSelector ?: E | string ,
173- ) : HTMLElementTagNameMap [ E ] [ ] {
171+ selector : Tag ,
172+ ) : HTMLElementTagNameMap [ Tag ] [ ] ;
173+ getElements < E extends Element > ( selector : string ) : E [ ] ;
174+ getElements < E extends Element > ( root : DocumentFragment | Element , selector : string ) : E [ ] ;
175+ getElements ( selector : string ) : Element [ ] ;
176+ getElements ( root : DocumentFragment | Element , selector : string ) : Element [ ] ;
177+ getElements (
178+ selectorOrRoot : string | DocumentFragment | Element ,
179+ maybeSelector ?: string ,
180+ ) : Element [ ] {
174181 const hasRoot = maybeSelector !== undefined ;
175182 const root = hasRoot ? ( selectorOrRoot as DocumentFragment | Element ) : this . host ;
176183 const selector = ( hasRoot ? maybeSelector : selectorOrRoot ) as string ;
177- const elements = Array . from ( root . querySelectorAll < HTMLElementTagNameMap [ E ] > ( selector ) ) ;
184+ const elements = Array . from ( root . querySelectorAll ( selector ) ) ;
178185 invariant ( elements . length > 0 , `${ this . host . localName } : missing ${ selector } ` ) ;
179186 return elements ;
180187 }
0 commit comments