튜플과 배열도 객체이므로 매핑된 객체 타입을 적용할 수 있습니다.
type Tuple = [1, 2, 3];
type CopyTuple = {
[Key in keyof Tuple]: Tuple[Key];
}
/*
type CopyTuple = {
[x: number]: 2 | 1 | 3;
0: 1;
1: 2;
2: 3;
length: 3;
toString: () => string;
toLocaleString: () => string;
pop: () => 2 | 1 | 3 | undefined;
push: (...items: (2 | 1 | 3)[]) => number;
concat: {
(...items: ConcatArray<2 | 1 | 3gt;[]): (2 | ... 1 more ... | 3)[];
(...items: (2 | ... 2 more ... | ConcatArray<...>)[]): (2 | ... 1 more ... | 3)[];
};
... 25 more ...;
[Symbol.unscopables]: () => {
...;
};
}
*/