Loading

TypeScript系列 4.数组类型

本系列知识部分基于小满 ZS 的TypeScript 系列教程。我也会补充一些视频没有的内容。

数组类型

1. 基本类型

let arr: number[] = [1, 2, 3];
let arr1: boolean[] = [true, true, false];

//使用泛型
let arr2: Array<boolean> = [true, true, false];

2. 对象类型

interface Student {
    name: string;
}
let arr: Student[] = [{ name: "张三" }, { name: "李四" }];

//使用泛型
let arr1: Array<Student> = [{ name: "张三" }, { name: "李四" }];

3. 二维数组

let arr1: number[][] = [
    [1, 2, 3],
    [4, 5, 6],
];

//使用泛型
let arr2: Array<Array<number>> = [
    [1, 2, 3],
    [4, 5, 6],
];

4. 任意类型

let arr8: any[] = [1, "sss", {}]

5. 混合类型数组

使用元组定义混合类型

let arr9: [number, string, {}] = [1, "sss", {}]

6. 函数剩余参数

函数剩余参数,也是可以被约束类型的。

//计算传入数值的和
function sum(...args: number[]) {
    return args.reduce((pre, cur) => {
        return pre + cur;
    });
}

7. arguments

在ES6之前,是没有剩余参数的,可以使用arguments,获取全部参数(ES6之后依然有效)。

ts中为arguments提供了一个接口叫IArguments,可以使用这个接口来引用arguments

function fn(...args: any[]) {
    let a: IArguments = arguments;
}

模拟IArguments

IArguments 可替换为下面的接口,主要就是callee、length和索引签名

interface A {
    callee: Function;
    length: number;
    [index: number]: any;
}
posted @ 2023-07-12 23:17  sq800  阅读(77)  评论(0编辑  收藏  举报