继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

TypeScript学习之类

慕码人8056858
关注TA
已关注
手记 1292
粉丝 351
获赞 1325

一、基本使用

class Person {
    name: string;    constructor(name: string){        this.name = name;
    }
    showName () {        return 'hello'+name;
    }
}let p = new Person('小王');
p.showName();//继承class Student extends Person{    constructor (name: string) {        super(name);
    }
    learn () {        console.log('learning');
    }
}let s = new Student('小张');
s.showName();
s.learn();

二、公共,私有与受保护的修饰符

//默认为 publicclass Person {
    public name: string;    constructor(name: string){        this.name = name;
    }
    showName () {        return 'hello'+name;
    }
}let p = new Person('小王');
p.showName();//private  不能在声明它的类的外部访问
    class Person {
    private name: string;    constructor(name: string){        this.name = name;
    }
    showName () {        return 'hello'+name;
    }
}new Person('xx').name//错误: 'name' 是私有的.//protected  protected成员在派生类中仍然可以访问class Person {
    protected name: string;    constructor(name: string){        this.name = name;
    }
}class Student extends Person{    constructor (name: string) {        super(name);
    }
    showName(){        return this.name;
    }
}//readonly修饰符  只读属性必须在声明时或构造函数里被初始化class Person  {
    readonly name: string;    constructor(name: string){        this.name = name;
    }
}//存取器class Person {
    private _name: string;
    get _name (): string {        return this._name;
    }
    set _name(name: string){        this._name = name;
    }
}

三、静态属性

这些属性存在于类本身上面而不是类的实例上

class Person {
    static name: string = "小张";
    showName (): string {        return Person.name;
    }
}

四、抽象类

抽象类做为其它派生类的基类使用。 它们一般不会直接被实例化

abstract class Person {  abstract eatFood(food: string): void; //必须在派生类中实现}class Student extends Person {
  eatFood (food: string): void{
    console.log('吃'+food);
  }
}

五、高级技巧

//构造函数class Person{
}
let person: Person;
person = new Person();//把类当做接口使用class Point{
    x: number;
    y: number;
}interface Point3D extends Point{
    z: number;
}
let p: Point3D = {x:1,y:2,z:3};



作者:大富_大贵
链接:https://www.jianshu.com/p/348465a4c7e4


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP