diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java index 54581cc2464..d338f7b878f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractTypeScriptClientCodegen.java @@ -84,7 +84,8 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp "any", "File", "Error", - "Map" + "Map", + "object" )); languageGenericTypes = new HashSet(Arrays.asList( @@ -106,7 +107,7 @@ public abstract class AbstractTypeScriptClientCodegen extends DefaultCodegen imp typeMapping.put("short", "number"); typeMapping.put("char", "string"); typeMapping.put("double", "number"); - typeMapping.put("object", "any"); + typeMapping.put("object", "object"); typeMapping.put("integer", "number"); typeMapping.put("Map", "any"); typeMapping.put("map", "any"); diff --git a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache index 48d801f4b51..476e984fadc 100644 --- a/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache +++ b/modules/openapi-generator/src/main/resources/typescript-fetch/modelGeneric.mustache @@ -50,7 +50,12 @@ export function {{classname}}FromJSON(json: any): {{classname}} { '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}(json['{{baseName}}'] as Array).map({{#items}}{{datatype}}{{/items}}FromJSON), {{/isContainer}} {{^isContainer}} + {{^isFreeFormObject}} '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}{{datatype}}FromJSON(json['{{baseName}}']), + {{/isFreeFormObject}} + {{#isFreeFormObject}} + '{{name}}': {{^required}}!exists(json, '{{baseName}}') ? undefined : {{/required}}json['{{baseName}}'], + {{/isFreeFormObject}} {{/isContainer}} {{/isPrimitiveType}} {{/allVars}} @@ -77,7 +82,12 @@ export function {{classname}}ToJSON(value?: {{classname}}): any { '{{baseName}}': {{^required}}value.{{name}} === undefined ? undefined : {{/required}}(value.{{name}} as Array).map({{#items}}{{datatype}}{{/items}}ToJSON), {{/isContainer}} {{^isContainer}} + {{^isFreeFormObject}} '{{baseName}}': {{datatype}}ToJSON(value.{{name}}), + {{/isFreeFormObject}} + {{#isFreeFormObject}} + '{{baseName}}': value.{{name}}, + {{/isFreeFormObject}} {{/isContainer}} {{/isPrimitiveType}} {{/isReadOnly}} @@ -106,4 +116,4 @@ export enum {{classname}}{{enumName}} { {{/isEnum}} {{/vars}} -{{/hasEnums}} \ No newline at end of file +{{/hasEnums}}