Typescript conditional type extends array July 8, 2019 16 32 64 128 Typescript type extends Typescript generic type