// 1、数组声明方式:`类型[]` 或者 `Array<类型>`
let wxidList: number[]
wxidList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log('wxidList=', wxidList)
let wxArr: Array<number> = [1, 2, 3, 4, 5, 6, 7, 8, 9]
console.log('wxArr=', wxArr)
let nameList: Array<string>
nameList = ['jack', 'pink', 'code', 'red']
console.log('nameList=', nameList)
let personList: object[] = [
{ firstname: '赵', lastName: '思' },
{ firstname: '李', lastName: '明' },
{ firstname: '相', lastName: '信' }
]
console.log('personList=', personList)
let userList: Array<object> = [
{ firstname: '赵', lastName: '思' },
{ firstname: '李', lastName: '明' },
{ firstname: '相', lastName: '信' }
]
console.log('userList=', userList)
// 2、多类型数组
let qqArr: Array<number | boolean> = [1, 2, 3, 4, 5, 6, 7, 8, true]
console.log('qqArr=', wxArr)
let fruitArr: (number | boolean)[] = [1, 2, 3, 4, 5, true]
console.log('fruitArr=', wxArr)
用接口表示数组 - 基础
/**
* !!! 必须要这么写哦 !!!
* 数组类型:拥有一个index类型,是用来索引数组的,所以在定义的时候是 [index:number]
*/
interface Stu1 {
[index: number]: number // 冒号右侧这个number,代表这是个number类型的数组
}
let stuArr_1: Stu1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -100]
console.log('用接口表示数组stuArr_1=', stuArr_1)
interface Stu2 {
[index: number]: (number | string)
}
let stuArr_2: Stu2 = ['迪迦', '赛罗', 1, 2]
console.log('用接口表示数组stuArr_2=', stuArr_2)
接口表示数组 - 常用
// 4、接口表示数组 - 进阶
/**
* 使用接口定义数组类型时,必须要用,索引签名来定义数组中每个元素的类型
*/
interface Info2 {
name: string
money: number
}
interface PerInfo {
[index: number]: Info2
}
const infoArr: PerInfo = [
{ name: 'Alice', money: 25 },
{ name: 'Bob', money: 30 },
{ name: 'Charlie', money: 35 }
]
/*
定义一个 Info2的接口,表示一个人的类型,
然后定义一个PerInfo接口,使用索引签名[index: number]来指定数组中每个元素的类型为Info2,
最后,创建一个infoArr数组,并赋予了一些Info2类型的对象,作为数组的元素
*/
二维数组(使用泛型)
// 二维数组
// 使用泛型数组类型,表示更深层次的数组类型
interface Mrs {
name: string,
age: number
}
type MrsArray<T> = Array<Array<T>>
const MrsList1: MrsArray<Mrs> = [
[{ name: 'Alice', age: 123 }],
[{ name: 'Blob', age: 456 }, { name: 'Charlie', age: 35 }]
]
/*
定义一个 Mrs的接口,表示一个人的类型,
然后,使用泛型数组类型MrsArray<T>来表示更深层的数组类型,其中T表示数组中元素的类型,
在MrsList1数组的定义中,使用了两层嵌套的数组,每个元素都是Mrs类型的对象。