Converts the passed in TPattern
to its corresponding TypeScript type.
TPattern extends Pattern
[K in keyof TPattern]: K extends `${number}` ? TPattern[K] extends PatternType ? ResolvePatternType<TPattern[K]> : TPattern[K] extends { type: PatternType; } ? TPattern[K] extends { optional: true; } ? ResolvePatternType<TPattern[K]["type"]> | undefined : ResolvePatternType<TPattern[K]["type"]> : never : TPattern[K]