From 5db23f468ffa0d2716a9bfe5d548f79a1096616c Mon Sep 17 00:00:00 2001 From: Aleksandr Penskoi Date: Thu, 5 Mar 2026 09:46:00 +0100 Subject: [PATCH] Fix: skip choice flattening for primitive variant types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Intersecting an object type with a primitive (boolean, string) produces nonsensical TypeScript. Skip flattening when the constrained choice variant is a primitive type — those slices keep the explicit value[x] field. --- src/api/writer-generator/typescript/profile.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/api/writer-generator/typescript/profile.ts b/src/api/writer-generator/typescript/profile.ts index 82d638727..d41ce336e 100644 --- a/src/api/writer-generator/typescript/profile.ts +++ b/src/api/writer-generator/typescript/profile.ts @@ -771,6 +771,9 @@ const detectConstrainedChoice = ( const variantField = baseSchema.fields[variantName]; if (!variantField || !isChoiceInstanceField(variantField)) continue; + // Skip flattening for primitive types — can't intersect object with boolean/string/etc. + if (isPrimitiveIdentifier(variantField.type)) continue; + return { choiceBase: fieldName, variant: variantName,