初学者这样玩 TypeScript,迟早进大厂系列(第九期)

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了初学者这样玩 TypeScript,迟早进大厂系列(第九期)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

极客江南: 一个对开发技特别执着的程序员,对移动开发有着独到的见解和深入的研究,有着多年的iOS、AndROId、HTML5开发经验,对NativeApp、HybridApp、WebApp开发有着独到的见解和深入的研究, 除此之外还精通 JavaScript、AngularJS、 NodeJS 、Ajax、jquery、Cordova、React Native等多种Web前端技术及Java、PHP等服务端技术。

初学者玩转 TyPEScript系列,总计 10 期,本文为第 9 期,点赞、收藏、评论、关注、三连支持!

一期知识点击这里

二期知识点击这里

三期知识点击这里

四期知识点击这里

五期知识点击这里

六期知识点击这里

七期知识点击这里

八期知识点击这里

九期目录

        • 1.访问器装饰器
        • 2. 属性装饰器
        • 3. 参数装饰器

对于初学者来说,学习编程最害怕的就是,

那么,Typescript 是不是很难?

首先,我可以肯定地告诉你,你的焦虑是多余的。新手对学习新技术有很强的排斥心理,主要是因为基础不够扎实,然后自信心不够强。

1.访问器装饰器

/*
1.访问器装饰器
- 访问器装饰器声明在一个访问器的声明之前(紧靠着访问器声明)。
访问器装饰器应用于访问器的 属性描述符并且可以用来监视,修改或替换一个访问器的定义

- 访问器装饰器表达式会在运行时当作函数被调用,传入下列3个参数:
    + 对于静态成员来说是类的构造函数,对于实例成员是类的原型对象。
    + 成员的名字。
    + 成员的属性描述符。

- 注意: 
TypeScript不允许同时装饰一个成员的get和set访问器。
取而代之的是,一个成员的所有装饰的必须应用在文档顺序的第一个访问器上
* */

function test(target: any, PRopertyKey: string, descriptor: PropertyDescriptor) {
    // console.LOG(target);
    // console.log(propertyKey);
    // console.log(descriptor);
    descriptor.set = (value:string)=>{
        target.myName = value;
    }
    descriptor.get = ():string=>{
        return target.myName;
    }
}
class Person {
    private _name:string; // lnj
    constructor(name:string){
        this._name = name;
    }
    @test
    get name():string{
        return this._name;
    }
    set name(value:string){
        this._name = value;
    }
    
}
let p = new Person('lnj');
p.name = 'zs';
console.log(p.name);
console.log(p);


2. 属性装饰器

/*
1.属性装饰器
- 属性装饰器写在一个属性声明之前(紧靠着属性声明)
- 属性装饰器表达式会在运行时当作函数被调用,传入下列2个参数:
    + 对于静态属性来说就是当前的类, 对于实例属性来说就是当前实例
    + 成员的名字。
* */
function test(target:any, proptyName:string) {
    console.log(target);
    console.log(proptyName);
    target[proptyName] = 'lnj';
}
class Person {
    // @test
    static age:number;
    @test
    name?:string;
}
let p = new Person();
console.log(p);

3. 参数装饰器

/*
1.参数装饰器
- 参数装饰器写在一个参数声明之前(紧靠着参数声明)。
- 参数装饰器表达式会在运行时当作函数被调用,传入下列3个参数:
    + 对于静态成员来说是当前的类,对于实例成员是当前实例。
    + 参数所在的方法名称。
    + 参数在参数列表中的索引。
* */
/*
其它
属性装饰器,参数装饰器最常见的应用场景就是配合元数据(reflect-metadata),
在不改变原有结构的同时添加一些额外的信息
但是元数据目前也是在提案中, 也还没有纳入正式的标准
所以对于装饰器而言, 我们只需要了解即可,
因为提案中的所有内容将来都是有可能被修改的
因为提案中的所有内容目前都有兼容性问题
* */
function test(target:any, proptyName:string, index:number) {
    console.log(target);
    console.log(proptyName);
    console.log(index);
}
class Person {
    say(age:number,@test name:string):void{

    }
}




码字不易,在线求个三连支持。

点击下方卡片,关注 回复 书籍 获取保姆级编程子书

脚本宝典总结

以上是脚本宝典为你收集整理的初学者这样玩 TypeScript,迟早进大厂系列(第九期)全部内容,希望文章能够帮你解决初学者这样玩 TypeScript,迟早进大厂系列(第九期)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。