ts接口的使用
可以用来限制对象的类型 如果限制的类型和写入的类型不同就会报错
枚举类型
TS中支持两种枚举, 一种是数字枚举, 一种是字符串枚举。
注意:数字枚举的取值默认从0开始递增。 数字枚举的取值可以是字面量, 也可以是常量, 也可以是计算的结果。
const num = 666;
function getNum() {
return 888;
}
enum Gender{
// Male = 6,
// Male = num, // 注意点: 如果使用常量给前面的枚举值赋值了,那么后面的枚举值也需要手动的赋值
// Female = 8
Male = getNum(), // 注意点: 如果使用计算结果给前面的枚举值赋值了, 那么后面的枚举值也需要手动的赋值
Female = 123
}
(2)字符串枚举
如果使用字符串给前面的枚举值赋值了, 那么后面的枚举值也必须手动赋值。
和数字枚举不一样, 字符串枚举不能使用常量或者计算结果给枚举值赋值。
虽然字符串枚举不能够使用常量或者计算结果给枚举值赋值, 但是它可以使用内部的其它枚举值来赋值
(3)异构枚举
枚举中既包含数字又包含字符串, 我们就称之为异构枚举。
(4)联合枚举类型
联合类型就是将多种数据类型通过|连接起来。
3.运行时枚举和常量枚举
(1)运行时枚举
枚举在编译之后是一个真实存储的对象, 所以可以在运行时使用。
而像接口这种只是用来做约束做静态检查的代码, 编译之后是不存在的
(2)常量枚举
普通枚举会生成真实存在的对象。
常量枚举不会生成真实存在的对象, 而是利用枚举成员的值替换使用到的地方。
ts中元组类型
元组是另一种类型的数组,是明确元素数量和类型的数组
1//元组 let position :[number,number] = [140,42]
使用模式:字面量类型配合联合类型一起使用
使用场景:用来表示一组明确的可选值列表
ts中的检测类型
检测变量或对象属性的类型
ts高级的class类以及类的继承
类是一种特殊的函数,本质还是原型和构造函数的概念
ts中的类我们在引用任何一个类成员的时候都要用到this。 它表示我们访问的是类的成员。
类和函数不同没有变量提升是块级作用域
可以在父类中限制子类的数据类型 通过new进行实例话来使用
类的构成
类中包含构造函数,实例属性, 静态属性,原型方法,静态方法,获取函数,设置函数。
1、如何实现继承
class通过关键字extends实现继承
2、super
class里面的super有两种使用方式,一种是当方法用,一种是当对象用
3、多重继承 可以通过实现多接口或者内部类的方式实现类似的效果。es6的class继承本质上还是基于原型链的继承,所以也是不支持多继承的。