类当中成员的访问修饰符:
-
private: 私有属性修饰符表示该属性只能在类内部被访问到;
-
public:公有成员,在TS中类成员的访问修饰符 默认就是 public ;
-
protected:受保护的成员,只允许在子类当中去访问对应的成员
class Person { public name: string private age: number protected gender: boolean construnctor (name: string, age: number) { this.name = name this.age = age this.gender = true } sayHi (mag: string): void { console.log(
my name is ${name}, ${msg}) } } class Student extends Person { constructor (name: string, age: number) { super(name, age) console.log(this.gender) // true } } const tom = new Person('tom', 8) console.log(tom.name) console.log(tom.age) // Property 'age' is private and only accessible within class 'Person' console.log(tom.gender) // Property 'gender' is protected and only accissible within class 'Person' and its subclasses
总结:以上就是 TS 当中对于类额外添加的三个访问修饰符 private、protected、public 它们的作用可以用来去控制类当中的一些成员的可访问级别。这里还有一个要注意的点就是对于构造函数的访问修饰符,构造函数的访问修饰符默认也是 public 。如果说把它设置成为 private 这个类型就不能够在外部被实例化了,也不能够被继承。在这样一种情况下,就只能够在这个类的内部去添加一个静态方法,然后在静态方法当中去创建这个类的实例。因为private 只允许在内部去访问。
class Student extends Person {
private constructor (name:string, age:number) {
super(name, age)
}
static create (name:sting, age:number) {
return new Student(name, age)
}
}
cosnt jack = Student.create('jack', 18)