TypeScript装饰器与原型链

TypeScript中的装饰器&元数据反射:从新手到专家II
TypeScript中的装饰器&元数据反射:从新手到专家3
TypeScript中的装饰器&元数据反射:从新手到专家四
一文读懂JS中类、原型和继承
https://blog.csdn.net/ZZB_Bin/article/details/103168609#__decorate_773

  • 类装饰器实例
/**
 * @return ClassDecorator类型的函数
 */
function decorator(): ClassDecorator
{
    return (target: T): T | void =>
    {
        console.debug("decorator");
        const f: any = function (...args: any[])
        {
            console.debug(args);
            //在这里添加自定义行为
        };
        f.prototype = target.prototype;
        f.prototype.a = 1;
        console.debug("target.prototype" + target.prototype.a);
        return f;
    }
}

/**
 * TypeScript方法装饰器
 * https://blog.fedepot.com/typescriptzhuang-shi-qi/
 */

@decorator()
class Test
{
    constructor(...args: any[])
    {
        console.info(args + "什么破玩意儿");
    }
}

let test: any = new Test(1, 2, 3); //这里是any是为了越过TypeScript的类型检查
console.debug(test.a);

export {}

你可能感兴趣的:(TypeScript装饰器与原型链)