array 是一种在一个名称下存储多个元素的类型。通常情况下,Array 存储单一类型的数据。Datatype 是一种原始类型,如数字、字符串或布尔值,或对象,如类或接口。
让我们来声明一个array 。
Arrays 使用Generic Array Type syntax 或 square bracket syntax 来定义。
例如,数组(Array of numbers)用数据类型number来声明和初始化。
// square bracket syntax.
let numbers:number[]=[1,2,3,4,5];
//Array Type
let numbers1:Array=[1,2,3,4,5];
同样的方法,字符串也声明和初始化,如下图所示
// square bracket syntax.
let words:string[]=["one","two","three","four"];
//Array Type
let words1:Array=["one","two","three","four"];
看一下上面的两个例子。
它定义了一个只能存储一种数据类型的数组,如字符串或数字。
如何声明一个有多种类型的数组?
在Typescript中:
你可以使用union type 。Union type ,允许将现有的类型和数据存储从一个联盟类型中组合起来。
Union type 用管道(|)符号表示数字和字符串的(数字|字符串)
// square bracket syntax.
let words:(number|string)[]=["one",1,"two","three","four"];
//Array Type
let words1:Array=["one",1,"two",2,"three","four"];
上面的例子声明了一个数字和字符串的联合类型的数组。它只存储数字或字符串数据,不允许存储任何其他类型。
数组联合类型用数组类型或方括号语法声明。
另一种方法是使用type alias 语法。
Type keyword 允许从现有类型中创建一个新的类型。
让我们用以下方式创建一个新的类型type keyword
type MyArrayType = number | string ;
MyArrayType是一个新的数据类型,是数字和字符串类型的联合。它只接受数字和字符串数据。
创建一个数组,如下所示
let words2: MyArrayType[] = ["one",1,"two","three","four"];
let words3: Array = ["one",1,"two","three","four"];
如何在TypeScript中声明不同类型的对象的数组?
我们也可以创建一个混合类型的数组,如对象和接口。
让我们声明一个Employee和User对象
class Employee {
id: number;
name: string;
constructor(id: number, name: string ) {
this.id = id;
this.name = name;
}
printEmployeeInfo():void {
console.log("Id = " + this.id + ", name = " + this.name);
}
}
User.ts
interface User {
id: number;
name: string;
active:boolean;
}
让我们用类和接口声明一个多类型的数组。
声明了一个array ,其中有Employee类和interface user的union 。
let all:Array=[] // Array type
let all1:(Employee | User)[]=[] // Using Typeguard generics
结论
总结一下,学习如何定义一个单一类型或多个类型的数组。
用Union类型或类型别名来定义多类型的数组。