[ Typescript 手册] JavaScript `Array` 在 Typescript 中的接口

本文详细介绍了 TypeScript 中 Array 对象的接口,涵盖了 length 属性、字符串表示、数组操作方法如 pop、push、slice 等,以及常用的数组遍历、筛选和操作函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[ Typescript 手册] JavaScript `Array` 在 Typescript 中的接口

本文地址:https://blog.csdn.net/qq_28550263/article/details/121201774

给出Array对象接口中文注释,以便查询

JavaScript Array 在 Typescript 中的接口

项目类别功能概述
length: number;属性获取或设置数组的长度。这比数组中的最高索引高一号。
toString(): string;函数返回数组的字符串表示形式。
toLocaleString(): string;函数返回数组的字符串表示形式。这些元素使用它们的toLocaleString方法转换为字符串。
pop(): T | undefined;函数从数组中移除最后一个元素并返回它。
push(…items: T[]): number;函数将新元素追加到数组末尾,并返回数组的新长度。
concat(…items: ConcatArray<T>[]): T[];函数组合两个或多个数组。
concat(…items: (T | ConcatArray<T>)[]): T[];函数组合两个或多个数组。
join(separator?: string): string;函数将数组的所有元素添加到字符串中,用指定的分隔符字符串分隔。
reverse(): T[];函数在适当的位置反转数组中的元素。
shift(): T | undefined;函数从数组中移除第一个元素并返回它。
slice(start?: number, end?: number): T[];函数返回数组某一部分的副本。
sort(compareFn?: (a: T, b: T) => number): this;函数对数组进行就地排序。
splice(start: number, deleteCount?: number): T[];函数从数组中移除元素,并在必要时插入新元素,返回删除的元素。
splice(start: number, deleteCount: number, …items: T[]): T[];函数从数组中移除元素,并在必要时插入新元素,返回删除的元素。
unshift(…items: T[]): number;函数在数组的开头插入新元素,并返回数组的新长度。
indexOf(searchElement: T, fromIndex?: number): number;函数返回数组中第一个值的索引,如果不存在,则返回-1。
lastIndexOf(searchElement: T, fromIndex?: number): number;函数返回指定值在数组中最后一次出现的索引,如果不存在,则返回-1。
every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];函数确定数组的所有成员是否满足指定的测试
some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;函数确定对于数组的任何元素,指定的回调函数是否返回true。
forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;函数为数组中的每个元素执行指定的操作。
map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];函数对数组的每个元素调用一个已定义的回调函数,并返回一个包含结果的数组。
filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];函数返回满足回调函数中指定条件的数组元素。
filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];函数返回满足回调函数中指定条件的数组元素。
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;函数为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;函数为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;函数为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;函数按降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;函数按降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;函数按降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
readonly [n: number]: T;
interface Array<T> {
    /**
     * 获取或设置数组的长度。这比数组中的最高索引高一号。
     */
    length: number;
    
    
    /**
     * 返回数组的字符串表示形式。
     */
    toString(): string;
    
    
    /**
     * 返回数组的字符串表示形式。这些元素使用它们的toLocaleString方法转换为字符串。
     */
    toLocaleString(): string;
    
    
    /**
     * 从数组中移除最后一个元素并返回它。
     * 如果数组为空,则返回undefined,并且不修改数组。
     */
    pop(): T | undefined;
    
    
    /**
     * 将新元素追加到数组末尾,并返回数组的新长度。
     * @param 要添加到数组中的新元素。
     */
    push(...items: T[]): number;
    
    
    /**
     * 组合两个或多个数组。
     * 此方法返回一个新数组,而不修改任何现有数组。
     * @param 项目要添加到数组末尾的附加数组和/或项目。
     */
    concat(...items: ConcatArray<T>[]): T[];
    
    
    /**
     * 组合两个或多个数组。
     * 此方法返回一个新数组,而不修改任何现有数组。
     * @param 项目要添加到数组末尾的附加数组和/或项目。
     */
    concat(...items: (T | ConcatArray<T>)[]): T[];
    
    
    /**
     * 将数组的所有元素添加到字符串中,用指定的分隔符字符串分隔。
     * @param 分隔符用于将数组中的一个元素与结果字符串中的下一个元素分开的字符串。如果省略,数组元素用逗号分隔。
     */
    join(separator?: string): string;
    
    
    /**
     * 在适当的位置反转数组中的元素。
     * 此方法变异数组并返回对同一数组的引用。
     */
    reverse(): T[];
    
    
    /**
     * 从数组中移除第一个元素并返回它。
     * 如果数组为空,则返回undefined,并且不修改数组。
     */
    shift(): T | undefined;
    
    
    /**
     * 返回数组某一部分的副本。
     * 对于开始和结束,可以使用负索引来指示从数组末尾的偏移量。
     * 例如,-2表示数组的倒数第二个元素。
     * @param start 数组指定部分的开始索引。
     * 如果start未定义,则切片从索引0开始。
     * @param end 数组指定部分的结束索引。这不包括索引“end”处的元素。
     * 如果end未定义,则切片会延伸到数组的末尾。
     */
    slice(start?: number, end?: number): T[];
    
    
    /**
     * 对数组进行就地排序。
     * 此方法变异数组并返回对同一数组的引用。
     * @param 用于确定元素顺序的比较函数。如果第一个参数小于第二个参数,它应该返回一个负值,如果它们相等,则返回零,否则返回一个正值。如果省略,元素将按升序排列,ASCII字符顺序。
     * ```ts
     * [11,2,22,1].sort((a, b) => a - b)
     * ```
     */
    sort(compareFn?: (a: T, b: T) => number): this;
    
    
    /**
     * 从数组中移除元素,并在必要时插入新元素,返回删除的元素。
     * @param 数组中从零开始移除元素的位置。
     * @param 删除计数要删除的元素数量。
     * @returns 包含已删除元素的数组。
     */
    splice(start: number, deleteCount?: number): T[];
    
    
    /**
     * 从数组中移除元素,并在必要时插入新元素,返回删除的元素。
     * @param 数组中从零开始移除元素的位置。
     * @param 删除计数要删除的元素数量。
     * @param 项目要插入数组中的元素,以取代已删除的元素。
     * @returns 包含已删除元素的数组。
     */
    splice(start: number, deleteCount: number, ...items: T[]): T[];
    
    
    /**
     * 在数组的开头插入新元素,并返回数组的新长度。
     * @param items 要在数组开头插入的元素。
     */
    unshift(...items: T[]): number;
    
    
    /**
     * 返回数组中第一个值的索引,如果不存在,则返回-1。
     * @param searchElement 要在数组中定位的值。
     * @param fromIndex 开始搜索的数组索引。如果省略fromIndex,搜索将从索引0开始。
     */
    indexOf(searchElement: T, fromIndex?: number): number;
    
    
    /**
     * 返回指定值在数组中最后一次出现的索引,如果不存在,则返回-1。
     * @param searchElement 要在数组中定位的值。
     * @param fromIndex 开始向后搜索的数组索引。如果省略fromIndex,搜索将从数组中的最后一个索引开始。
     */
    lastIndexOf(searchElement: T, fromIndex?: number): number;
    
    
    /**
     * 确定数组的所有成员是否满足指定的测试。
     * @param predicate 最多接受三个参数的函数。every方法为数组中的每个元素调用谓词函数,直到谓词返回一个强制布尔值false的值,或者直到数组结束。
     * @param thisArg 这个关键字在谓词函数中可以引用的对象。
     * 如果省略thisArg,则使用undefined作为this值。
     */
    every<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): this is S[];
    
    
    /**
     * 确定数组的所有成员是否满足指定的测试。
     * @param predicate 最多接受三个参数的函数。every方法为数组中的每个元素调用谓词函数,直到谓词返回一个强制布尔值false的值,或者直到数组结束。
     * @param thisArg 这个关键字在谓词函数中可以引用的对象。
     * 如果省略thisArg,则使用undefined作为this值。
     */
    every(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
    
    
    /**
     * 确定对于数组的任何元素,指定的回调函数是否返回true。
     * @param predicate 最多接受三个参数的函数。一些方法调用
     * 数组中每个元素的谓词函数,直到谓词返回一个强制布尔值true的值,或者直到数组结束。
     * @param thisArg 这个关键字在谓词函数中可以引用的对象。
     * 如果省略thisArg,则使用undefined作为this值。
     */
    some(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): boolean;
    
    
    /**
     * 为数组中的每个元素执行指定的操作。
     * @param callbackfn  最多接受三个参数的函数。forEach为数组中的每个元素调用callbackfn函数一次。
     * @param thisArg  callbackfn函数中该关键字可以引用的对象。如果省略thisArg,则使用undefined作为this值。
     */
    forEach(callbackfn: (value: T, index: number, array: T[]) => void, thisArg?: any): void;
    
    
    /**
     * 对数组的每个元素调用一个已定义的回调函数,并返回一个包含结果的数组。
     * @param callbackfn 最多接受三个参数的函数。map方法为数组中的每个元素调用callbackfn函数一次。
     * @param thisArg callbackfn函数中该关键字可以引用的对象。如果省略thisArg,则使用undefined作为this值。
     */
    map<U>(callbackfn: (value: T, index: number, array: T[]) => U, thisArg?: any): U[];
    
    
    /**
     * 返回满足回调函数中指定条件的数组元素。
     * @param predicate 最多接受三个参数的函数。filter方法为数组中的每个元素调用一次谓词函数。
     * @param thisArg 这个关键字在谓词函数中可以引用的对象。如果省略thisArg,则使用undefined作为this值。
     */
    filter<S extends T>(predicate: (value: T, index: number, array: T[]) => value is S, thisArg?: any): S[];
    
    
    /**
     * 返回满足回调函数中指定条件的数组元素。
     * @param predicate 最多接受三个参数的函数。filter方法为数组中的每个元素调用一次谓词函数。
     * @param thisArg 这个关键字在谓词函数中可以引用的对象。如果省略thisArg,则使用undefined作为this值。
     */
    filter(predicate: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[];
    
    
    /**
     * 为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
     * @param callbackfn 最多接受四个参数的函数。reduce方法为数组中的每个元素调用callbackfn函数一次。
     * @param initialValue 如果指定了initialValue,它将用作开始累加的初始值。对callbackfn函数的第一次调用将该值作为参数而不是数组值提供。
     */
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
    reduce(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
    
    
    /**
     * 为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
     * @param callbackfn 最多接受四个参数的函数。reduce方法为数组中的每个元素调用callbackfn函数一次。
     * @param initialValue 如果指定了initialValue,它将用作开始累加的初始值。对callbackfn函数的第一次调用将该值作为参数而不是数组值提供。
     */
    reduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
    
    
    /**
     * 按降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
     * @param callbackfn 最多接受四个参数的函数。reduceRight方法为数组中的每个元素调用callbackfn函数一次。
     * @param initialValue 如果指定了initialValue,它将用作开始累加的初始值。对callbackfn函数的第一次调用将该值作为参数而不是数组值提供。
     */
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T): T;
    reduceRight(callbackfn: (previousValue: T, currentValue: T, currentIndex: number, array: T[]) => T, initialValue: T): T;
    
    /**
     * 按降序为数组中的所有元素调用指定的回调函数。回调函数的返回值是累积的结果,并在回调函数的下一次调用中作为参数提供。
     * @param callbackfn 最多接受四个参数的函数。reduceRight方法为数组中的每个元素调用callbackfn函数一次。
     * @param initialValue 如果指定了initialValue,它将用作开始累加的初始值。对callbackfn函数的第一次调用将该值作为参数而不是数组值提供。
     */
    reduceRight<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
    

    [n: number]: T;
}

interface ArrayConstructor {
    new(arrayLength?: number): any[];
    new <T>(arrayLength: number): T[];
    new <T>(...items: T[]): T[];
    (arrayLength?: number): any[];
    <T>(arrayLength: number): T[];
    <T>(...items: T[]): T[];
    isArray(arg: any): arg is any[];
    readonly prototype: any[];
}

declare var Array: ArrayConstructor;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jcLee95

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值