变量类型:
boolean,string,number
数组 :number[] :Array<number>、元组:已知类型和数量的数组
object,any,枚举 enum Color{red='red',blue='blue'}
null,undefined,void,never
类型断言(as语法,尖括号语法)
变量声明:
let const 解构 ...
接口:
可选属性
只读属性(与const区别)
额外的属性检查(接口定义参数时,用字符串索引签名或类型断言)
函数类型(接口定义函数)
可索引类型(接口定义数组)
类类型(类实现接口)
继承接口(多继承)
混合类型(接口定义函数和对象)
接口继承类(如果有私有属性,那么只有其子类可以实现接口)
总结:
可选属性,只读属性,字符串索引签名
接口定义函数,对象,数组
类实现接口,接口继承接口(多继承),接口继承类
类:
继承(构造函数必须调用super)
修饰符
- 默认public
- 私有private 只能在声明类中访问
- 受保护类型 protected 可以在派生类中访问,构造函数protected则只能通过派生类实例化
readonly
参数属性(构造函数里有修饰符的属性)
存取器(get set)
静态属性 static
抽象类 abstract (抽象类不能创建实例对象;子类必须实现抽象方法;实例对象类型是抽象父类时,则派生类中的方法必须在抽象类中有才能调用)
构造函数 let a:typeof b=b;a可以得到b的类型和构造函数
类当成接口使用,接口继承类
总结:
修饰符,只读属性,静态属性,参数属性
存取器(对版本有要求),继承,抽象类
函数:
函数类型(为参数和返回值添加类型)
书写完整的函数类型(表达式声明函数 let a:(value:string)=>string)=function(value:string):string{return value}
类型推断(表达式只在一边声明类型,另一边可以自动推断类型)
可选参数,默认参数,剩余参数
this(this作用域,this参数类型,回调函数this)
重载(定义不同的函数类型)