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中类型检测-鸭子类型 鸭子类型:如果一只鸟,走起来像鸭子,游起来像鸭子,那么你可以认为他就是一种鸭子 鸭子类型只关心属性和行为,不关心你具体是不是对应的类型
类的类型
类的作用
- 可以创建对应的实例对象
- 类本身可以组偶为这个实例的类型
- 类也可以当作有一个构造签名的函数
对象类型的属性修饰符
- 可选属性Optional Properties
- 只读属性Readonly Properties
- 索引签名Index Signatures
- 接口继承
- 接口的类实现implements
抽象类和接口的区别
OOP面向对象,抽象类:抽象、封装、继承、多态
- 只能单一继承
接口
- 通常是描述一些行为
- 可以多层实现
TS的枚举类型
- 枚举就是将一组可能出现的值,一个个列举出来,定义在一个类型中,这个类型就是枚举类型
- 枚举允许开发者定义一组命名常量,常量可以是数字、字符串类型