TypeScript3(数组)

1.写法1:类型\[\]

这是最常用、最直观的定义方式,表示一个由特定类型元素组成的数组。

ts 复制代码
const arr1: number[] = [1, 2, 3];
const arr2: string[] = ['a', 'b', 'c'];
const arr3: boolean[] = [true, false];
const arr4: any[] = [1, 'a', true];

arr1.unshift(0); // [0, 1, 2, 3]

联合类型数组:如果数组中的元素类型不确定,可以使用联合类型。

ts 复制代码
// 数组元素可以是 number 或 string 
let mixedArray: (number | string)[] = [1, 'two', 3, 'four'];

2.写法2:泛型数组Array<类型>

这种语法使用泛型(Generics)来定义数组类型,提供了另一种可读性强的选择。

ts 复制代码
let numbers: Array<number> = [1, 2, 3, 4];

同样也可以使用联合类型

ts 复制代码
let mixedArray: Array<number | string> = [1, 'two', 3, 'four'];

3.用接口表示数组

一般用来描述类数组,核心在于描述那些结构不完全是数组,但行为又类似数组的复杂对象。

ts 复制代码
interface NumberArray {
    // 可以描述任何拥有数字索引并且值是数字的对象
    [index: number]: number;
}
const arr6: NumberArray = [1, 2, 3];

举个栗子

ts 复制代码
interface StudentScore {
    [index: number]: number;
    name: string;
    average(): number;
}

const score: StudentScore = {
    0: 90,
    1: 95,
    2: 100,
    name: "YaeZed",
    average() {
        let sum = 0;
        for (let i = 0; i < 3; i++) {
            // sum += this[i];// 这里报错原因是因为编译器无法保证每个i都存在
            const score = this[i];
            if (score !== undefined) sum += score; // 这里的undefined判断是为了避免数组越界
        }
        return sum / 3;
    }
}
// console.log(score[0]);
// console.log(score.name);
// console.log(score.average());

4.any

any类型数组,在 TypeScript 中,any[] 是一种特殊的数组类型,它允许数组中包含任何类型的元素。它本质上是 TypeScript 类型的"逃生舱",用于在类型系统无法确定或不方便确定类型时,暂时放弃类型检查。更多还是使用联合类型。

ts 复制代码
const arr7: any[] = [1, 'a', true];

参考文章

小满zs 学习typeScript4(数组类型) xiaoman.blog.csdn.net/article/det...

相关推荐
右耳朵猫AI4 天前
Web前端周刊2026W38 | React 19.3 发布、StyleX 深潜、jsdom 30.1 提速
前端·javascript·react.js·typescript·node.js
溪语流沙4 天前
Django + Vue电商项目第001讲:开篇|注册登录加增删改查,那不是电商
redis·python·mysql·docker·typescript·django·vue
掰头战士4 天前
多重影分身!恨不得把一个agent掰成两个? 还真能干!
typescript·llm·agent
shmily麻瓜小菜鸡5 天前
TDD(测试驱动开发)详解
开发语言·javascript·typescript·node.js·ecmascript
雾隐隐o5 天前
TypeScript 基础:数据类型、接口与类型推论
typescript
flash俊杰6 天前
Zod Schema 驱动的 IPC 契约:从入参校验到状态机一致性的三层防御
javascript·typescript
愛芳芳6 天前
基于 Electron + Vue3 的仿 PC 微信客户端项目实战
前端·javascript·css·elementui·typescript·electron·vue
神秘的猪头7 天前
TypeScript 高级用法全解析:从泛型到 infer,把类型系统真正用起来
前端·typescript
FYKJ_20107 天前
【毕设分享】基于Web的校园兼职信息发布与申请系统07059
前端·vue.js·spring boot·mysql·typescript·spark·课程设计
ynchyong8 天前
TS 基础
typescript·ts