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