// 类export = {}class Person { public name: string // 默认就是 public private age: number //私有属性 protected readonly gender: boolean // 内部或者子类才能访问 只读属性:只能声明或者构造函数中去赋值 二选一 constructor (name: string, age: number) { this.name = name this.age = age this.gender = true } sayHai (msg: string): void { console.log(`Hai, I am ${this.name}, ${msg}`) }}const tom = new Person('tom', 28)console.log(tom.name)// 这里报错,不能在外部访问其私有属性// console.log(tom.age)// 内部或者子类才能访问// console.log(tom.gender)class Student extends Person { constructor (name: string, age: number) { super(name, age) // 字类中可以访问父类中受保护的属性 console.log(this.gender) }}const tom2 = new Person('tom2', 23)