如何通过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
相关产品推荐
相关产品推荐

