From 395c392183f9d48243a1888fb3312ddf0957e6c9 Mon Sep 17 00:00:00 2001 From: Bernhard Seefeld Date: Mon, 3 Mar 2025 16:51:20 -0800 Subject: [PATCH] fix additional properties to not be `any` by default --- .../packages/common-builder/src/schema-to-ts.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/typescript/packages/common-builder/src/schema-to-ts.ts b/typescript/packages/common-builder/src/schema-to-ts.ts index 06944bfdf..0b97a21b2 100644 --- a/typescript/packages/common-builder/src/schema-to-ts.ts +++ b/typescript/packages/common-builder/src/schema-to-ts.ts @@ -52,7 +52,7 @@ export type Schema< T extends { additionalProperties: infer AP extends boolean | JSONSchema } ? AP - : true, + : false, GetDefaultKeys > : Record @@ -122,7 +122,9 @@ type ObjectFromProperties< } // Additional properties & ( - AP extends false ? Record + AP extends false + // Additional properties off => no-op instead of empty record + ? Record : AP extends true ? { [key: string]: unknown } : AP extends JSONSchema ? { [key: string]: Schema> } @@ -206,7 +208,7 @@ export type SchemaWithoutCell< T extends { additionalProperties: infer AP extends boolean | JSONSchema } ? AP - : true, + : false, GetDefaultKeys > : Record @@ -271,8 +273,8 @@ type ObjectFromPropertiesWithoutCell< // Additional properties & ( AP extends false - // Additional properties off => empty - ? Record + // Additional properties off => no-op instead of empty record + ? Record : AP extends true // Additional properties on => unknown ? { [key: string]: unknown }