Typescript学习第九天

84 阅读2分钟

这是我参与2022首次更文挑战的第19天,活动详情查看:2022首次更文挑战

数组类型中的泛型数组类型

泛型数组类型表示法用来表示使用泛型表示数组类型。也是数组的另一种表示方法。语法Array[TElement],其中Array代表数组类型,后面的TElement代表的是数组元素的类型。在使用泛型数组类型表示法时,就是数组中元素的类型为复合类型也不需要使用分组运算符,我们还是可以即包含字符串元素也包含数字元素的zss数组例子。

const zss: Array<string | number> = ['z', 's', 's']

简便数组类型表示法和泛型数组类型表示法在功能上没有任何差别,就是在定义简单数组类型时,如果数组元素是单一原始类型或类型引用,用此类型看起来更加清晰和简介。如果数组元素时复杂类型,例如对象类型和联合类型。则可以选择使用泛型数组类型表示法,这样也能看起来整洁一些。当我们定义了数组类型后,我们访问数组元素时可以能够获得正确的元素类型信息。当访问数组不存在的元素时将返回undefined值,那么可能无法推断出是否存在数组访问越界的情况。但是即使访问了不存在的数组元素,还是会得到声明的数组元素类型。

const digits: number[] = [4, 5, 6]

只读数组

只读数组和常规数组区别在于只读数组仅允许程序读取数组元素而不允许修改数组元素。使用readonly修饰符能够定义只读数组,在定义只读数组时,将readonly修饰符置于数组类型之前就可以了。我们可以通过数组元素的索引来访问只读数组元素,但是不能修改只读数组元素。在只读数组上也不支持任何能够修改数组元素的方法。在进行赋值操作时,允许将常规数组类型赋值给只读数组类型。但是不允许将只读数组类型赋值给常规数组类型。意思就是说不能通过赋值操作来放宽对只读数组的约束。

const c: number[] = [5]

元组类型

我们把由有限元素构成的有序列表称为元组。元组类型是数组类型的子类型。元组是长度固定的数组,并且元组中每个元素都有确定的类型。

[Z0, Z1, Z2, ..., Zn]