You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Track类的数组属性获取其元素类型而非数组类型?

如何通过Track类获取单个Note类型

我定义了如下类:

export declare class Track {
    name: string;
    instrument: Instrument;
    notes: Note[];
    // more
}

Note类定义如下,但我无法直接访问Note类:

export declare class Note implements NoteInterface {
    midi: number;
    velocity: number;
    noteOffVelocity: number;
    //  more
};

目前通过Track['notes']得到的是Note[]类型,但我需要单个Note类型,该怎么实现?


解决方法

1. 直接提取数组元素类型

在数组类型后添加[number],即可获取数组中单个元素的类型:

const note: Track['notes'][number];

此时note的类型就是单个Note。

2. 定义工具类型复用

如果需要多次使用该类型,可以定义一个通用工具类型来提取数组元素类型:

type ArrayElement<T extends readonly any[]> = T[number];

// 使用示例
const note: ArrayElement<Track['notes']>;

内容的提问来源于stack exchange,提问作者Fer Toasted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:30:53