UNPKG

@alwatr/synapse

Version:

Connect your TypeScript classes to the DOM, declaratively.

23 lines 851 B
import type { DirectiveBase } from './directiveClass.js'; /** * Type definition for a directive constructor. * A directive class must have a constructor that accepts an HTMLElement. */ export type DirectiveConstructor<T extends DirectiveBase = DirectiveBase> = new (element: HTMLElement, selector: string) => T; /** * A class decorator that registers a class as a directive. * * @param selector The CSS selector to which this directive will be attached. * * @example * ```ts * @directive('.my-button') * class MyButtonDirective extends DirectiveBase { * protected update_(): void { * this.element_.addEventListener('click', () => console.log('Button clicked!')); * } * } * ``` */ export declare function directive(selector: string): (constructor: DirectiveConstructor) => void; //# sourceMappingURL=directiveDecorator.d.ts.map