day22|学习前端ts语言
抽象类,继承。不能创造实例
class类:属性声明,构造器,方法,实例
继承super()
override重写父类继承的方法
声明提升(hoisting)同一个js作用域内部,编译阶段把函数声明提前到作用域顶部
区分两者:
函数提前可用是作用域编译阶段的行为(声明提升)
跨文化提前可用是模块加载顺序的行为(依赖先执行)
类不会声明提升
属性的简写形式
属性修饰符:public,protected,private,readonly只读属性
抽象类abstract,不能被new。不能用new关键词直接创建(实例化)这个类的对象
主要用于继承
函数名(参数列表){
函数体
}
何时使用抽象类:定义通用接口,提供基础实现,共享代码逻辑
interface接口:定义结构的方式
implement定义类
定义对象结构、函数结构
ts的接口可以当成类型用
接口之间的继承
接口自动合并(可重复定义)
何时用接口?定义对象的格式(描述数据模型,API响应格式,配置对象);类的契约;扩展已有接口
interface和抽象类区别
都能定义类的格式
接口:只能描述结构,不能有任何实现代码,一个类可以实现多个接口
抽象类:可以包含抽象方法,也可以包含具体方法。一个类只能继承一个抽象类
泛型< T >使用类型参数来表示未指定的类型
泛型函数
泛型可以有多个,泛型接口extraInfo
类型声明文件
.d.ts作为拓展名