亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

TypeScript學習之類

標簽:
JavaScript

一、基本使用

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


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消