@alwatr/synapse
Version:
Connect your TypeScript classes to the DOM, declaratively.
23 lines • 851 B
TypeScript
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