decorio
Version:
First-class ECMAScript decorators for caching, binding, and concurrency patterns
21 lines (20 loc) • 579 B
TypeScript
/**
* 🎯 Binds a class method to its instance, ensuring `this` always refers to the instance
* whenever the method is called (even if extracted). Works only on public instance methods.
*
* Usage:
* ```typescript
* class Example {
* message = 'Hello';
*
* @bound greet() {
* console.log(this.message);
* }
* }
*
* const e = new Example();
* const greet = e.greet;
* greet(); // always logs 'Hello'
* ```
*/
export declare function bound<A extends Array<unknown>, R>(_: unknown, context: ClassMethodDecoratorContext<object, (...args: A) => R>): void;