fix(directives): Add explicit type annotations to subscribeWithTemplate directive export

This commit is contained in:
2025-04-18 19:22:57 +00:00
parent af2b4048d0
commit 2e64489e9b
3 changed files with 19 additions and 2 deletions

View File

@ -1,4 +1,5 @@
import { type TemplateResult, noChange } from 'lit';
import type { DirectiveResult } from 'lit/directive.js';
import { AsyncDirective, directive } from 'lit/async-directive.js';
import { rxjs } from '@push.rocks/smartrx';
@ -48,4 +49,13 @@ class SubscribeWithTemplateDirective extends AsyncDirective {
* Directive that renders templates for each emission of an Observable.
* Usage: html`${subscribeWithTemplate(myObservable, v => html`<span>${v}</span>`)}`
*/
export const subscribeWithTemplate = directive(SubscribeWithTemplateDirective);
/**
* Typed directive function signature: returns a Lit DirectiveResult.
*/
type SubscribeWithTemplateFn = <T>(
observable: rxjs.Observable<T>,
templateFn: (value: T) => TemplateResult | unknown
) => DirectiveResult;
export const subscribeWithTemplate = directive(
SubscribeWithTemplateDirective
) as SubscribeWithTemplateFn;