BaseType
typetype BaseType = T extends { type: "string" } ? string : T extends { type: "number" } ? number : T extends { type: "boolean" } ? boolean : T extends { items: "string"; type: "array" } ? string[] : T extends { items: "number"; type: "array" } ? number[] : T extends { properties: infer P; type: "object" } ? P extends Record<string, unknown> ? ResolveProperties<P> : never : T extends { type: "oneOf"; valueTypes: infer V } ? V extends readonly { type: ... }[] ? DistributeResolveOptionType<V[number]> : never : neverMap an option config to its base TypeScript type.
Uses structural typing to avoid circular imports.