public 默认修饰符
class Animal {public name: string;constructor(name: string) {this.name = name}run() {return `${this.name} is running`}}const snake = new Animal('lily')console.log(snake.run())snake.name = 'lucy'console.log(snake.run())
private 修饰符:子类不可访问属性
class Animal {private name: string;constructor(name: string) {this.name = name}run() {return `${this.name} is running`}}const snake = new Animal('lily')console.log(snake.run())class Dog extends Animal {bark() {return `${this.name} is barking` // 子类不可访问}}
protected 修饰符:子类可以访问属性
class Animal {protected name: string;constructor(name: string) {this.name = name}run() {return `${this.name} is running`}}const snake = new Animal('lily')console.log(snake.run())class Dog extends Animal {bark() {return `${this.name} is barking`}}
readonly 修饰符
只可读取属性,不可更改
class Animal {readonly name: string;constructor(name: string) {this.name = name}run() {return `${this.name} is running`}}const snake = new Animal('lily')console.log(snake.run())snake.name = 'kip' // 报错
static 修饰符
class Animal {readonly name: string;static categoies: string[] = ['mammal', 'bird'];constructor(name: string) {this.name = name}run() {return `${this.name} is running`}}const snake = new Animal('lily')console.log(snake.run())console.log(Animal.categoies)
