创造对象(实例)的东西
相当于升级版的interfaqce

class Human{
  name:string
  age:number
constructor(name:string,age:number){
  this.name=name 
  this.age=age
  }
}
let Jason =new Human('Jason',18)

constructor

每个实例都会有class里的constructor 可以为实例化的对象接受参数
每个实例的属性

static

在static 里声明的属性才是类本身的属性 不是实例的属性

  • 类的继承要使用 super

修饰符 private public protected

  • private 私有属性
    无法被调用 只能在class 中被调用
    相当于 class局部变量
  • public 公开属性
    默认是public 不止可以在class中访问
  • protected 不完全公开
    只能在class 以及后代class中被调用

get set

  1. 将要隐藏的属性设置为私有属性
private _secreate:string
get secreate(){
  return this._secreate
}
set secreate(value:string){
//可以在这里加限制
  this.secreate=value
}

这样 获取的时候走get逻辑
修改的时候走set逻辑

抽象类(爹类)--一定有子类

如果想声明一个类 又不想实现它 就可以在类和方法上加上abstract
且也无法创建抽象类的实例
一般用于其他类 继承该类

JS 和TS

JS中可以随时给对象修改属性 TS 要先声明属性的类型,之后不能随便改
类比interface 的好处多了 一条
写一个如何初始化类的函数 constructor
且可以把实现写在声明里,也可以在后面重新写一个实现(自由)

你可能感兴趣的:(类)