跳到主要内容

Typescript面向对象

TS的类

认识类的使用

类的定义

  • 成员属性需要声明

    class Person{ //成员属性需要声明 name !:string age :number

      constructo(name:string,age:number){
    this.name = name
    this.age = age
    }

    eating(){
    console.log(this.name+'eating')
    }

    }

    const p1 = new Person('wujiaze',18)

类的继承:同js一样

类的成员修饰符

* public 在任何地方都可见、公有的属性或方法、默认编写的属性就是public
* private 仅在同一类中,类中,可见、私有的属性和方法
* protected 仅在类自身及子类中可见、受保护的属性和方法
* readonly
* setter和getter对属性的访问进行拦截操作

参数属性(Parameter Properties)

可以看作一个语法糖

class Person {


constructor(public name:string,age:number){

}

}
const p = new Person('why',18)
console.log(p.name);

抽象类 abstract

继承是多态的前提

  • 抽象类不能被实例化

  • 抽象方法只能在抽象类中

  • 抽象方法子类必须重写

    abstract class Shape { abstract getArea() }

TS中类型检测-鸭子类型 鸭子类型:如果一只鸟,走起来像鸭子,游起来像鸭子,那么你可以认为他就是一种鸭子 鸭子类型只关心属性和行为,不关心你具体是不是对应的类型

类的类型

类的作用

  1. 可以创建对应的实例对象
  2. 类本身可以组偶为这个实例的类型
  3. 类也可以当作有一个构造签名的函数

对象类型的属性修饰符

  • 可选属性Optional Properties
  • 只读属性Readonly Properties
  • 索引签名Index Signatures
  • 接口继承
  • 接口的类实现implements

抽象类和接口的区别

OOP面向对象,抽象类:抽象、封装、继承、多态

  • 只能单一继承

接口

  • 通常是描述一些行为
  • 可以多层实现

TS的枚举类型

  • 枚举就是将一组可能出现的值,一个个列举出来,定义在一个类型中,这个类型就是枚举类型
  • 枚举允许开发者定义一组命名常量,常量可以是数字、字符串类型