[Typescript] Extend Functionality of a TypeScript Class with Decorators

In this lesson, you will learn how to extend a class's functionality through typescript decorators. Decorators provide a way to add both annotations and a Meta-programming Syntax for class declarations and members.

 

class Lesson {
    lessonNumber: number = 0;
}

const lesson = new Lesson();
console.log(lesson.lessonNumber); // 0

 

Decorator:

function classDecorator<T extends { new (...args: any[]): {}}>(target: T) {
    return class extends target {
        lessonNumber = 3;

        toString() {
            return `${target.name}::${JSON.stringify(this, null, 2)}`
        }
    }
}

@classDecorator
class Lesson {
    lessonNumber: number = 0;
}

const lesson = new Lesson();
console.log(lesson.lessonNumber); // 3
console.log(lesson.toString()) 
/**
 * "Lesson::{
        "lessonNumber": 3
    }"  
*/

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐