ts的类型

165 阅读3分钟

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继承本质上还是基于原型链的继承,所以也是不支持多继承的。