version : ^4.0.3 [ you can find code here](https://www.typescriptlang.org/play?#code/C4TwDgpgBAglC8UDaBGANAJjQZgLoFgAoUSKAIQViQDsBXAWwCMIAnAwooA) or just look at this ```ts type A = [1,2,3] type B = A[number] // expect ^= type B = 1 | 2 | 3 // output: ^= type B = 3 | 1 | 2 ``` I know it doesn't effect using, but I wonder the order mechanism