有的时候,我们希望对类成员(属性,方法)进行一定的访问控制,来保证数据的安全,通过类修饰符可以做到这一点,目前typescript提供了四种修饰符:
- public:公有,默认
- protected: 受保护
- private: 私有
- readonly: 只读
public修饰符
这个是类成员的默认修饰符,他的访问级别为:
- 自身
- 子类
- 类外
protected 修饰符
他的访问级别为:
- 自身
- 子类
private修饰符
他的访问级别为:
- 自身
readonly 修饰符
只读修饰符只能针对成员属性使用,且必须在声明时或构造函数里被初始化,他的访问级别为:
- 自身
- 子类
- 类外
class User{
constructor(
//可以访问,但是一旦确定不能修改
readonly id: number,
//自身和子类可以访问,但是不能外部修改
protected username: string,
//外部包括子类不能访问,也不可以修改
private password: string
){
this.id:number = id;
this.username: string = username;
this.password: string = password;
}
getInfo(){
this.id;
this.username;
this.password;
}
//可以通过public方法修改private属性
setPassword(password: string){
if(password.length >= 6){
this.password = password;
}
}
}
class Vip extends User{
getInfo2(){
this.id;
this.username;
this.password; //error
}
}
let user1 = new User(1,"thia","123456");
user1.id;
user1.username; //error
user1.password; //error