- 类的基本使用及super的作用
- 访问类型
- 构造函数 constructor
- get和set属性
- 抽象类和方法
类的使用及super的作用
class User{
name = "龚箭";
getName(){
return this.name
}
}
const xiaojiejie = new User();
console.log(xiaojiejie.getName()); // 龚箭s
super的使用
super的作用在于调用父类的constrctor函数,也可以使用super.xxx 直接访问类上面的属性
class User{
name="龚箭";
getName(){
return this.name
}
}
class Teacher extends Person{
getTeacherNama(){
return 'Teacher'
}
getName(){
return super.getName()+'web'
}
}
const teacher = new Teacher();
console.log(teacher.getName()) // 龚箭web
访问类型
- private 只允许在类中使用
- protected 只允许在类内或者继承的子类中使用
- public 在内外都可以使用
- static 直接挂载类上面,而非实例上
class User{
private name = "龚箭";
private sayHi(){
console.log(`${this.name} hello`)
}
}
class Teacher() extends User{
sayBye(){
this.sayHi()
}
}
let xxx = new Teacher()
xxx.sayBye()
构造函数 constructor
class Person{
public name:string;
constructor(name:string){
this.name = name
}
}
// 简写
class Person{
constructor(public name:string){}
}
// 使用
let xxx = new Person("龚箭")
get和set属性
注意 getter 和 setter 定义的属性是不用函数的方式调用的,只需要点操作符就可
class User{
constructor(private name:string){}
get getName(){
return this.name +"web"
}
set setName(newName){
this.name = newName
}
}
const person = new Person('龚箭')
console.log(person.getName)
person.setName = "学习"
console.log(person.getName)
抽象类和方法
抽象类和方式,是一种编程思想,并不是特定的语法
本质的作用就是将多个类型中同样的属性和方法抽离出来,创建新类.并通过继承的方式下放到各个子类中
interface Person {
name: string;
}
interface Teacher extends Person {
teachingAge: number;
}
interface Student extends Person {
age: number;
}
interface Driver {
name: string;
age: number;
}
const teacher = {
name: 'dell',
teachingAge: 3
};
const student = {
name: 'lee',
age: 18
};
const getUserInfo = (user: Person) => {
console.log(user.name);
};
getUserInfo(teacher);
getUserInfo(student);