修饰符:
- public:实例,子类及自身内部都可以使用
- protected:子类及自身内部可以使用
- private:自身内部可以使用
语法糖:
class Person {constructor(public name: string) {}}let name = new Person('alex').nameconsole.log(name)export {}
直接在 constructor 参数中声明修饰符 public,就不需要再在 Person 上定义变量 name 了。
readonly 修饰符
只能在 constructor 中赋值,其他地方不能赋值
class Person {constructor (readonly name: string) {}}
存取器
class Person {set (newName: string) {this.name = newName;}get () {return this.name;}constructor (public name: string) {}call () {console.log(this.name);}}const person = new Person('alex')person.call();
静态属性
class Animal {static class = '动物'}console.log(Animal.class)
抽象类
含有抽象属性的类必须声明为抽象类,抽象类不能被实例,只能被继承
abstract class Animal {abstract call (): void;}class Cat extends Animal {call () {console.log('🐱')}}new Cat().call();
