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 點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦