Promise<{
0: Awaited<string>,
1: Awaited<Promise<number>>,
2: Awaited<Promise<Promise<boolean>>>,
// 나머지 배열, 속성들
}>
0 속성의 타입은 규칙 1번에 따라 string이 되고, 1 속성의 타입은 규칙 2번에 따라 Awaited<number>가 되었다가, 다시 규칙 1번에 따라 number가 됩니다. 2 속성의 타입은 규칙
2번에 따라 Awaited<Promise<boolean>>, Awaited<boolean> 순으로 변하고, 최종적으로 규칙 1번에 따라 boolean이 됩니다.
Promise<{
0: string,
1: number,
2: boolean,
// 나머지 배열, 속성들
}>
여기서 await을 붙이면 최종적으로 [string, number, boolean] 타입이 나옵니다.