From 008841dd7afa7ec104614dffa1c1469d7b2d5fa5 Mon Sep 17 00:00:00 2001 From: Marko Lahma Date: Sun, 3 Aug 2025 10:22:23 +0300 Subject: [PATCH] Change TypeScript default version to 4.3 --- Directory.Build.props | 2 +- README.md | 4 +- .../EnumGenerationTests.cs | 2 +- .../Samples/SampleTests.cs | 4 +- ...then_TS_code_has_string_value.verified.txt | 2 +- ...Script_is_correctly_generated.verified.txt | 24 +- .../AbstractGenerationTests.cs | 6 +- .../ClassGenerationTests.cs | 34 +-- .../ConstructorInterfaceTests.cs | 3 +- .../DictionaryTests.cs | 12 +- .../InheritanceTests.cs | 10 +- .../NullabilityTests.cs | 10 +- .../PropertyNameTests.cs | 2 +- ...then_it_is_newer_instantiated.verified.txt | 18 +- ...peScript_keyword_is_generated.verified.txt | 18 +- ...t_then_it_is_not_instantiated.verified.txt | 20 +- ...ts.Verify_output_style=Class.verified.txt} | 0 ...utput_style=Class_version=1.8.verified.txt | 214 ---------------- ...utput_style=Class_version=2.1.verified.txt | 214 ---------------- ...utput_style=Class_version=2.7.verified.txt | 214 ---------------- ...erify_output_style=Interface.verified.txt} | 0 ...t_style=Interface_version=1.8.verified.txt | 31 --- ...t_style=Interface_version=2.7.verified.txt | 31 --- ...t_style=Interface_version=4.3.verified.txt | 31 --- ...y_output_style=KnockoutClass.verified.txt} | 0 ...yle=KnockoutClass_version=1.8.verified.txt | 231 ------------------ ...yle=KnockoutClass_version=2.1.verified.txt | 231 ------------------ ...yle=KnockoutClass_version=2.7.verified.txt | 231 ------------------ ...ialization_is_always_exectued.verified.txt | 6 +- ...n_no_interfaces_are_generated.verified.txt | 6 +- ...then_initializers_are_correct.verified.txt | 18 +- ..._dont_add_export_before_class.verified.txt | 6 +- ..._code_has_correct_initializer.verified.txt | 10 +- ..._code_has_correct_initializer.verified.txt | 10 +- ...rt_before_class_and_interface.verified.txt | 6 +- ..._code_has_correct_initializer.verified.txt | 14 +- ..._generated_then_it_is_correct.verified.txt | 58 ++--- ...nment_may_create_new_instance.verified.txt | 6 +- ...ry_then_assignment_is_correct.verified.txt | 4 +- ...onstructorInterfaceData=False.verified.txt | 4 +- ...ConstructorInterfaceData=True.verified.txt | 4 +- ...onstructorInterfaceData=False.verified.txt | 6 +- ...ConstructorInterfaceData=True.verified.txt | 6 +- ...csharp_is_generated_correctly.verified.txt | 26 +- ...me_then_TypeScript_is_correct.verified.txt | 26 +- ...ks_inline=False_convert=False.verified.txt | 2 +- ...rks_inline=False_convert=True.verified.txt | 2 +- ...rks_inline=True_convert=False.verified.txt | 4 +- ...orks_inline=True_convert=True.verified.txt | 4 +- ...licates_schemaType=JsonSchema.verified.txt | 16 +- ...uplicates_schemaType=OpenApi3.verified.txt | 16 +- ...uplicates_schemaType=Swagger2.verified.txt | 16 +- ...nerated_schemaType=JsonSchema.verified.txt | 26 +- ...generated_schemaType=OpenApi3.verified.txt | 26 +- ...generated_schemaType=Swagger2.verified.txt | 26 +- ...ct_nullability_in_TypeScript2.verified.txt | 30 +-- ...ble_then_default_is_undefined.verified.txt | 6 +- ...nullable_then_default_is_null.verified.txt | 6 +- ..._then_default_is_new_instance.verified.txt | 6 +- ...hen_typescript_has_string_key.verified.txt | 4 +- ...hen_typescript_has_enum_value.verified.txt | 4 +- ...ce_contract_add_discriminator.verified.txt | 8 +- ..._discriminator_string_literal.verified.txt | 8 +- ...act_then_generate_union_class.verified.txt | 34 +-- ...then_generate_union_interface.verified.txt | 8 +- ...harp_inheritance_is_generated.verified.txt | 20 +- ...rited_class_in_generated_code.verified.txt | 6 +- ...n_then_typescript_has_comment.verified.txt | 6 +- ...n_then_typescript_has_comment.verified.txt | 6 +- ..._properties_in_generated_code.verified.txt | 12 +- ...n_then_csharp_has_xml_comment.verified.txt | 6 +- ...ript_property_is_not_optional.verified.txt | 20 +- ...n_casing_is_correct_in_output.verified.txt | 20 +- ...ject_then_typescript_uses_any.verified.txt | 2 +- ...y_has_no_reference_and_is_any.verified.txt | 2 +- .../TypeScriptDictionaryTests.cs | 12 +- .../TypeScriptDiscriminatorTests.cs | 10 +- .../TypeScriptGeneratorTests.cs | 14 +- .../TypeScriptObjectTests.cs | 6 +- .../DataConversionGenerator.cs | 2 - .../Models/ClassTemplateModel.cs | 6 - .../Models/PropertyModel.cs | 4 +- .../Templates/Class.liquid | 8 +- .../Templates/ConvertToClass.liquid | 20 +- .../Templates/KnockoutClass.liquid | 6 +- .../TypeScriptGeneratorSettings.cs | 11 +- .../TypeScriptTypeResolver.cs | 4 +- 87 files changed, 393 insertions(+), 1877 deletions(-) rename src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/{ClassGenerationTests.Verify_output_style=Class_version=4.3.verified.txt => ClassGenerationTests.Verify_output_style=Class.verified.txt} (100%) delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=1.8.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.1.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.7.verified.txt rename src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/{ClassGenerationTests.Verify_output_style=Interface_version=2.1.verified.txt => ClassGenerationTests.Verify_output_style=Interface.verified.txt} (100%) delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=1.8.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.7.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=4.3.verified.txt rename src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/{ClassGenerationTests.Verify_output_style=KnockoutClass_version=4.3.verified.txt => ClassGenerationTests.Verify_output_style=KnockoutClass.verified.txt} (100%) delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=1.8.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.1.verified.txt delete mode 100644 src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.7.verified.txt diff --git a/Directory.Build.props b/Directory.Build.props index f7fb5755b..51d406aed 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,6 +1,6 @@ - 11.4.1 + 11.5.0 Rico Suter Copyright © Rico Suter, 2022 diff --git a/README.md b/README.md index c896f4dbc..2972967e1 100644 --- a/README.md +++ b/README.md @@ -230,7 +230,7 @@ The previously generated JSON Schema would generate the following TypeScript int **Settings:** - new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 2.0m } + new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 4.3m } **Output:** @@ -265,7 +265,7 @@ export interface Person { **Settings:** - new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 2.0m } + new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 4.3m } **Output:** diff --git a/src/NJsonSchema.CodeGeneration.Tests/EnumGenerationTests.cs b/src/NJsonSchema.CodeGeneration.Tests/EnumGenerationTests.cs index 11cd82709..fae470e4e 100644 --- a/src/NJsonSchema.CodeGeneration.Tests/EnumGenerationTests.cs +++ b/src/NJsonSchema.CodeGeneration.Tests/EnumGenerationTests.cs @@ -153,7 +153,7 @@ public async Task When_enum_has_string_value_then_TS_code_has_string_value() var schemaData = schema.ToJson(); // Act - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 1.8m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var code = generator.GenerateFile("MyClass"); // Assert diff --git a/src/NJsonSchema.CodeGeneration.Tests/Samples/SampleTests.cs b/src/NJsonSchema.CodeGeneration.Tests/Samples/SampleTests.cs index f0e05b0e1..28f1418e7 100644 --- a/src/NJsonSchema.CodeGeneration.Tests/Samples/SampleTests.cs +++ b/src/NJsonSchema.CodeGeneration.Tests/Samples/SampleTests.cs @@ -54,7 +54,7 @@ public async Task Demo() var schema = NewtonsoftJsonSchemaGenerator.FromType(); var schemaJsonData = schema.ToJson(); var errors = schema.Validate("{}"); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class }); var code = generator.GenerateFile(); } @@ -64,7 +64,7 @@ public async Task Demo2() var schema = NewtonsoftJsonSchemaGenerator.FromType(); var schemaJsonData = schema.ToJson(); var errors = schema.Validate("{}"); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile(); } diff --git a/src/NJsonSchema.CodeGeneration.Tests/Snapshots/EnumGenerationTests.When_enum_has_string_value_then_TS_code_has_string_value.verified.txt b/src/NJsonSchema.CodeGeneration.Tests/Snapshots/EnumGenerationTests.When_enum_has_string_value_then_TS_code_has_string_value.verified.txt index a122f58b9..d4ee8ca4b 100644 --- a/src/NJsonSchema.CodeGeneration.Tests/Snapshots/EnumGenerationTests.When_enum_has_string_value_then_TS_code_has_string_value.verified.txt +++ b/src/NJsonSchema.CodeGeneration.Tests/Snapshots/EnumGenerationTests.When_enum_has_string_value_then_TS_code_has_string_value.verified.txt @@ -15,7 +15,7 @@ export enum StringEnum { } export class MyClass implements IMyClass { - bar: StringEnum; + bar!: StringEnum; constructor(data?: IMyClass) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.Tests/Snapshots/InheritanceSerializationTests.When_schema_contains_discriminator_and_inheritance_hierarchy_then_TypeScript_is_correctly_generated.verified.txt b/src/NJsonSchema.CodeGeneration.Tests/Snapshots/InheritanceSerializationTests.When_schema_contains_discriminator_and_inheritance_hierarchy_then_TypeScript_is_correctly_generated.verified.txt index d0e925a99..8f4d7e615 100644 --- a/src/NJsonSchema.CodeGeneration.Tests/Snapshots/InheritanceSerializationTests.When_schema_contains_discriminator_and_inheritance_hierarchy_then_TypeScript_is_correctly_generated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.Tests/Snapshots/InheritanceSerializationTests.When_schema_contains_discriminator_and_inheritance_hierarchy_then_TypeScript_is_correctly_generated.verified.txt @@ -63,7 +63,7 @@ export class Dog extends Animal implements IDog { this._discriminator = "Dog"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.bar = _data["Bar"]; @@ -75,14 +75,14 @@ export class Dog extends Animal implements IDog { } } - static fromJS(data: any): Dog { + static override fromJS(data: any): Dog { data = typeof data === 'object' ? data : {}; let result = new Dog(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Bar"] = this.bar; if (Array.isArray(this.subElements)) { @@ -157,21 +157,21 @@ export class SubClass1 extends SubClass implements ISubClass1 { this._discriminator = "SubClass1"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.prop1 = _data["Prop1"]; } } - static fromJS(data: any): SubClass1 { + static override fromJS(data: any): SubClass1 { data = typeof data === 'object' ? data : {}; let result = new SubClass1(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Prop1"] = this.prop1; super.toJSON(data); @@ -191,14 +191,14 @@ export class SubClass2 extends SubClass implements ISubClass2 { this._discriminator = "SubClass2"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.prop2 = _data["Prop2"]; } } - static fromJS(data: any): SubClass2 { + static override fromJS(data: any): SubClass2 { data = typeof data === 'object' ? data : {}; if (data["discriminator"] === "SubClass3") { let result = new SubClass3(); @@ -210,7 +210,7 @@ export class SubClass2 extends SubClass implements ISubClass2 { return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Prop2"] = this.prop2; super.toJSON(data); @@ -230,21 +230,21 @@ export class SubClass3 extends SubClass2 implements ISubClass3 { this._discriminator = "SubClass3"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.prop3 = _data["Prop3"]; } } - static fromJS(data: any): SubClass3 { + static override fromJS(data: any): SubClass3 { data = typeof data === 'object' ? data : {}; let result = new SubClass3(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Prop3"] = this.prop3; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/AbstractGenerationTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/AbstractGenerationTests.cs index 092bd8d5c..f1168934c 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/AbstractGenerationTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/AbstractGenerationTests.cs @@ -22,7 +22,7 @@ public async Task When_class_is_abstract_then_is_abstract_TypeScript_keyword_is_ var json = schema.ToJson(); // Act - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var code = generator.GenerateFile("AbstractClass"); // Assert @@ -44,7 +44,7 @@ public async Task When_property_is_required_and_abstract_then_it_is_not_instanti var json = schema.ToJson(); // Act - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var code = generator.GenerateFile("ContainerClass"); // Assert @@ -72,7 +72,7 @@ public async Task When_abstract_class_is_in_inheritance_hierarchy_then_it_is_new var schema = NewtonsoftJsonSchemaGenerator.FromType(); // Act - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var code = generator.GenerateFile("AbstractClass"); // Assert diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ClassGenerationTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ClassGenerationTests.cs index f59a95221..579ae9536 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ClassGenerationTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ClassGenerationTests.cs @@ -45,28 +45,18 @@ public class Person } [Theory] - [InlineData(TypeScriptTypeStyle.Class, 1.8)] - [InlineData(TypeScriptTypeStyle.Class, 2.1)] - [InlineData(TypeScriptTypeStyle.Class, 2.7)] - [InlineData(TypeScriptTypeStyle.Class, 4.3)] - [InlineData(TypeScriptTypeStyle.KnockoutClass, 1.8)] - [InlineData(TypeScriptTypeStyle.KnockoutClass, 2.1)] - [InlineData(TypeScriptTypeStyle.KnockoutClass, 2.7)] - [InlineData(TypeScriptTypeStyle.KnockoutClass, 4.3)] - [InlineData(TypeScriptTypeStyle.Interface, 1.8)] - [InlineData(TypeScriptTypeStyle.Interface, 2.1)] - [InlineData(TypeScriptTypeStyle.Interface, 2.7)] - [InlineData(TypeScriptTypeStyle.Interface, 4.3)] - public async Task Verify_output(TypeScriptTypeStyle style, decimal version) + [InlineData(TypeScriptTypeStyle.Class)] + [InlineData(TypeScriptTypeStyle.KnockoutClass)] + [InlineData(TypeScriptTypeStyle.Interface)] + public async Task Verify_output(TypeScriptTypeStyle style) { var settings = new TypeScriptGeneratorSettings { - TypeStyle = style, - TypeScriptVersion = version + TypeStyle = style }; var output = await PrepareAsync(settings); - await VerifyHelper.Verify(output).UseParameters(style, version); + await VerifyHelper.Verify(output).UseParameters(style); } private static Task PrepareAsync(TypeScriptGeneratorSettings settings) @@ -115,8 +105,7 @@ public async Task When_array_property_is_required_or_not_then_the_code_has_corre var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - SchemaType = SchemaType.Swagger2, - TypeScriptVersion = 1.8m + SchemaType = SchemaType.Swagger2 }); var code = generator.GenerateFile("MyClass"); @@ -160,8 +149,7 @@ public async Task When_dictionary_property_is_required_or_not_then_the_code_has_ var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - SchemaType = SchemaType.Swagger2, - TypeScriptVersion = 1.8m + SchemaType = SchemaType.Swagger2 }); var code = generator.GenerateFile("MyClass"); @@ -213,8 +201,7 @@ public async Task When_object_property_is_required_or_not_then_the_code_has_corr var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - SchemaType = SchemaType.Swagger2, - TypeScriptVersion = 1.8m + SchemaType = SchemaType.Swagger2 }); var code = generator.GenerateFile("MyClass"); @@ -262,8 +249,7 @@ public async Task When_Knockout_class_is_generated_then_initializers_are_correct var code = await PrepareAsync(new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.KnockoutClass, - GenerateConstructorInterface = false, - TypeScriptVersion = 2.0m + GenerateConstructorInterface = false }); // Assert diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ConstructorInterfaceTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ConstructorInterfaceTests.cs index 59c8666e5..828ccb2e8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ConstructorInterfaceTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/ConstructorInterfaceTests.cs @@ -59,8 +59,7 @@ public async Task When_constructor_interface_and_conversion_code_is_generated_th var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { GenerateConstructorInterface = true, - ConvertConstructorInterfaceData = true, - TypeScriptVersion = 1.8m + ConvertConstructorInterfaceData = true }); var output = generator.GenerateFile("MyClass"); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/DictionaryTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/DictionaryTests.cs index 1908eb475..1040f72c1 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/DictionaryTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/DictionaryTests.cs @@ -129,8 +129,7 @@ public async Task When_property_is_dto_dictionary_then_assignment_may_create_new var codeGenerator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - NullValue = TypeScriptNullValue.Null, - TypeScriptVersion = 1.8m + NullValue = TypeScriptNullValue.Null }); var code = codeGenerator.GenerateFile("Test"); @@ -190,8 +189,7 @@ public async Task When_property_is_string_dictionary_then_assignment_is_correct( var codeGenerator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - NullValue = TypeScriptNullValue.Undefined, - TypeScriptVersion = 1.8m + NullValue = TypeScriptNullValue.Undefined }); var code = codeGenerator.GenerateFile("Test"); @@ -226,8 +224,7 @@ public async Task When_property_uses_custom_dictionary_class_then_class_is_gener TypeStyle = TypeScriptTypeStyle.Class, NullValue = TypeScriptNullValue.Undefined, ConvertConstructorInterfaceData = convertConstructorInterfaceData, - InlineNamedDictionaries = inlineNamedDictionaries, - TypeScriptVersion = 1.8m + InlineNamedDictionaries = inlineNamedDictionaries }); var code = codeGenerator.GenerateFile("Test"); @@ -271,8 +268,7 @@ public async Task When_dictionary_has_arbitrary_nonenum_key_then_generated_types var codeGenerator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { ConvertConstructorInterfaceData = true, - TypeStyle = TypeScriptTypeStyle.Class, - TypeScriptVersion = 2.7m + TypeStyle = TypeScriptTypeStyle.Class }); var code = codeGenerator.GenerateFile("Test"); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/InheritanceTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/InheritanceTests.cs index 502f2e7a2..be68604c3 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/InheritanceTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/InheritanceTests.cs @@ -35,7 +35,6 @@ public async Task When_empty_class_inherits_from_dictionary_then_allOf_inheritan var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeScriptVersion = 2.0m, InlineNamedDictionaries = inline, ConvertConstructorInterfaceData = convert }); @@ -81,7 +80,7 @@ public async Task When_class_with_discriminator_has_base_class_then_csharp_is_ge var schema = NewtonsoftJsonSchemaGenerator.FromType(); var data = schema.ToJson(); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); // Act var code = generator.GenerateFile(); @@ -100,7 +99,6 @@ public async Task When_interfaces_are_generated_with_inheritance_then_type_check var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeScriptVersion = 2.0m, TypeStyle = TypeScriptTypeStyle.Interface, GenerateTypeCheckFunctions = true }); @@ -124,7 +122,7 @@ public async Task When_discriminator_does_not_match_typename_then_TypeScript_is_ schema.Definitions["ExceptionBase"].AllOf.Last().DiscriminatorObject.Mapping.Remove("MyException"); var data = schema.ToJson(); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); // Act var code = generator.GenerateFile(); @@ -212,7 +210,7 @@ public async Task When_schema_with_inheritance_to_object_type_is_generated_then_ var factory = JsonReferenceResolver.CreateJsonReferenceResolverFactory(new DefaultTypeNameGenerator()); var schema = await JsonSchemaSerialization.FromJsonAsync(json, schemaType, null, factory, new DefaultContractResolver(), CancellationToken.None); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m, SchemaType = schemaType }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { SchemaType = schemaType }); // Act var code = generator.GenerateFile(); @@ -301,7 +299,7 @@ public async Task When_schema_with_inheritance_and_references_is_generated_then_ var factory = JsonReferenceResolver.CreateJsonReferenceResolverFactory(new DefaultTypeNameGenerator()); var schema = await JsonSchemaSerialization.FromJsonAsync(json, schemaType, null, factory, new DefaultContractResolver(), CancellationToken.None); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2.0m, SchemaType = schemaType }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { SchemaType = schemaType }); // Act var code = generator.GenerateFile(); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/NullabilityTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/NullabilityTests.cs index afe91da78..b7c95d336 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/NullabilityTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/NullabilityTests.cs @@ -18,7 +18,7 @@ public async Task Strict_nullability_in_TypeScript2() }); var json = schema.ToJson(); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 2 }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var output = generator.GenerateFile("MyClass"); @@ -58,7 +58,7 @@ public async Task When_a_complex_property_is_not_required_and_not_nullable_then_ }"); var generator = new TypeScriptGenerator(schema, - new TypeScriptGeneratorSettings { TypeScriptVersion = 2, SchemaType = SchemaType.OpenApi3 }); + new TypeScriptGeneratorSettings { SchemaType = SchemaType.OpenApi3 }); // Act var output = generator.GenerateFile("MyClass"); @@ -101,7 +101,7 @@ public async Task When_a_complex_property_is_required_and_not_nullable_then_defa }"); var generator = new TypeScriptGenerator(schema, - new TypeScriptGeneratorSettings { TypeScriptVersion = 2, SchemaType = SchemaType.OpenApi3 }); + new TypeScriptGeneratorSettings { SchemaType = SchemaType.OpenApi3 }); // Act var output = generator.GenerateFile("MyClass"); @@ -148,7 +148,7 @@ public async Task When_a_complex_property_is_nullable_then_default_is_null() }"); var generator = new TypeScriptGenerator(schema, - new TypeScriptGeneratorSettings { TypeScriptVersion = 2, SchemaType = SchemaType.OpenApi3 }); + new TypeScriptGeneratorSettings { SchemaType = SchemaType.OpenApi3 }); // Act var output = generator.GenerateFile("MyClass"); @@ -173,7 +173,6 @@ public async Task When_array_item_is_nullable_then_generated_TypeScript_is_corre var json = schema.ToJson(); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeScriptVersion = 2.7m, NullValue = TypeScriptNullValue.Null }); @@ -206,7 +205,6 @@ public async Task When_complex_array_item_is_nullable_then_generated_TypeScript_ var json = schema.ToJson(); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeScriptVersion = 2.7m, NullValue = TypeScriptNullValue.Null }); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/PropertyNameTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/PropertyNameTests.cs index b4a0783a2..cc77f4f07 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/PropertyNameTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/PropertyNameTests.cs @@ -18,7 +18,7 @@ public async Task When_class_has_restricted_properties_they_are_escaped() { var schema = NewtonsoftJsonSchemaGenerator.FromType(); - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeScriptVersion = 4.3m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings()); var output = generator.GenerateFile(nameof(TypeWithRestrictedProperties)); await VerifyHelper.Verify(output); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_abstract_class_is_in_inheritance_hierarchy_then_it_is_newer_instantiated.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_abstract_class_is_in_inheritance_hierarchy_then_it_is_newer_instantiated.verified.txt index 626978f2a..8468d5da8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_abstract_class_is_in_inheritance_hierarchy_then_it_is_newer_instantiated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_abstract_class_is_in_inheritance_hierarchy_then_it_is_newer_instantiated.verified.txt @@ -10,7 +10,7 @@ export class BaseClass implements IBaseClass { - base: string | undefined; + base!: string | undefined; protected _discriminator: string; @@ -58,21 +58,21 @@ export interface IBaseClass { } export abstract class AbstractClass extends BaseClass implements IAbstractClass { - foo: string | undefined; + foo!: string | undefined; constructor(data?: IAbstractClass) { super(data); this._discriminator = "AbstractClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.foo = _data["Foo"]; } } - static fromJS(data: any): AbstractClass { + static override fromJS(data: any): AbstractClass { data = typeof data === 'object' ? data : {}; if (data["discriminator"] === "SuperClass") { let result = new SuperClass(); @@ -82,7 +82,7 @@ export abstract class AbstractClass extends BaseClass implements IAbstractClass throw new Error("The abstract class 'AbstractClass' cannot be instantiated."); } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Foo"] = this.foo; super.toJSON(data); @@ -95,28 +95,28 @@ export interface IAbstractClass extends IBaseClass { } export class SuperClass extends AbstractClass implements ISuperClass { - super: string | undefined; + super!: string | undefined; constructor(data?: ISuperClass) { super(data); this._discriminator = "SuperClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.super = _data["Super"]; } } - static fromJS(data: any): SuperClass { + static override fromJS(data: any): SuperClass { data = typeof data === 'object' ? data : {}; let result = new SuperClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Super"] = this.super; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_class_is_abstract_then_is_abstract_TypeScript_keyword_is_generated.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_class_is_abstract_then_is_abstract_TypeScript_keyword_is_generated.verified.txt index 626978f2a..8468d5da8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_class_is_abstract_then_is_abstract_TypeScript_keyword_is_generated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_class_is_abstract_then_is_abstract_TypeScript_keyword_is_generated.verified.txt @@ -10,7 +10,7 @@ export class BaseClass implements IBaseClass { - base: string | undefined; + base!: string | undefined; protected _discriminator: string; @@ -58,21 +58,21 @@ export interface IBaseClass { } export abstract class AbstractClass extends BaseClass implements IAbstractClass { - foo: string | undefined; + foo!: string | undefined; constructor(data?: IAbstractClass) { super(data); this._discriminator = "AbstractClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.foo = _data["Foo"]; } } - static fromJS(data: any): AbstractClass { + static override fromJS(data: any): AbstractClass { data = typeof data === 'object' ? data : {}; if (data["discriminator"] === "SuperClass") { let result = new SuperClass(); @@ -82,7 +82,7 @@ export abstract class AbstractClass extends BaseClass implements IAbstractClass throw new Error("The abstract class 'AbstractClass' cannot be instantiated."); } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Foo"] = this.foo; super.toJSON(data); @@ -95,28 +95,28 @@ export interface IAbstractClass extends IBaseClass { } export class SuperClass extends AbstractClass implements ISuperClass { - super: string | undefined; + super!: string | undefined; constructor(data?: ISuperClass) { super(data); this._discriminator = "SuperClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.super = _data["Super"]; } } - static fromJS(data: any): SuperClass { + static override fromJS(data: any): SuperClass { data = typeof data === 'object' ? data : {}; let result = new SuperClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Super"] = this.super; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_property_is_required_and_abstract_then_it_is_not_instantiated.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_property_is_required_and_abstract_then_it_is_not_instantiated.verified.txt index beb965fea..8afc93526 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_property_is_required_and_abstract_then_it_is_not_instantiated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/AbstractGenerationTests.When_property_is_required_and_abstract_then_it_is_not_instantiated.verified.txt @@ -10,7 +10,7 @@ export class BaseClass implements IBaseClass { - base: string | undefined; + base!: string | undefined; protected _discriminator: string; @@ -58,21 +58,21 @@ export interface IBaseClass { } export abstract class AbstractClass extends BaseClass implements IAbstractClass { - foo: string | undefined; + foo!: string | undefined; constructor(data?: IAbstractClass) { super(data); this._discriminator = "AbstractClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.foo = _data["Foo"]; } } - static fromJS(data: any): AbstractClass { + static override fromJS(data: any): AbstractClass { data = typeof data === 'object' ? data : {}; if (data["discriminator"] === "SuperClass") { let result = new SuperClass(); @@ -82,7 +82,7 @@ export abstract class AbstractClass extends BaseClass implements IAbstractClass throw new Error("The abstract class 'AbstractClass' cannot be instantiated."); } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Foo"] = this.foo; super.toJSON(data); @@ -95,28 +95,28 @@ export interface IAbstractClass extends IBaseClass { } export class SuperClass extends AbstractClass implements ISuperClass { - super: string | undefined; + super!: string | undefined; constructor(data?: ISuperClass) { super(data); this._discriminator = "SuperClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.super = _data["Super"]; } } - static fromJS(data: any): SuperClass { + static override fromJS(data: any): SuperClass { data = typeof data === 'object' ? data : {}; let result = new SuperClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Super"] = this.super; super.toJSON(data); @@ -129,7 +129,7 @@ export interface ISuperClass extends IAbstractClass { } export class ContainerClass implements IContainerClass { - foo: AbstractClass; + foo!: AbstractClass; constructor(data?: IContainerClass) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=4.3.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class.verified.txt similarity index 100% rename from src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=4.3.verified.txt rename to src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class.verified.txt diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=1.8.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=1.8.verified.txt deleted file mode 100644 index ef0d798ef..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=1.8.verified.txt +++ /dev/null @@ -1,214 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person implements IPerson { - firstName: string; - lastName: string; - - constructor(data?: IPerson) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - } - - init(_data?: any) { - if (_data) { - this.firstName = _data["FirstName"]; - this.lastName = _data["LastName"]; - } - } - - static fromJS(data: any): Person { - data = typeof data === 'object' ? data : {}; - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["FirstName"] = this.firstName; - data["LastName"] = this.lastName; - return data; - } -} - -export interface IPerson { - firstName: string; - lastName: string; -} - -export class Student extends Person implements IStudent { - study: string; - - constructor(data?: IStudent) { - super(data); - } - - init(_data?: any) { - super.init(_data); - if (_data) { - this.study = _data["Study"]; - } - } - - static fromJS(data: any): Student { - data = typeof data === 'object' ? data : {}; - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Study"] = this.study; - super.toJSON(data); - return data; - } -} - -export interface IStudent extends IPerson { - study: string; -} - -export class MyClass implements IMyClass { - name: string; - dateOfBirth: Date; - primitiveArray: number[]; - primitiveDictionary: { [key: string]: number; }; - dateArray: Date[]; - dateDictionary: { [key: string]: Date; }; - reference: Student; - array: Student[]; - dictionary: { [key: string]: Student; }; - - constructor(data?: IMyClass) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - if (!data) { - this.name = "foo"; - } - } - - init(_data?: any) { - if (_data) { - this.name = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.dateOfBirth = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - if (Array.isArray(_data["PrimitiveArray"])) { - this.primitiveArray = [] as any; - for (let item of _data["PrimitiveArray"]) - this.primitiveArray.push(item); - } - if (_data["PrimitiveDictionary"]) { - this.primitiveDictionary = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (this.primitiveDictionary as any)[key] = _data["PrimitiveDictionary"][key]; - } - } - if (Array.isArray(_data["DateArray"])) { - this.dateArray = [] as any; - for (let item of _data["DateArray"]) - this.dateArray.push(new Date(item)); - } - if (_data["DateDictionary"]) { - this.dateDictionary = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (this.dateDictionary as any)[key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.reference = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - if (Array.isArray(_data["Array"])) { - this.array = [] as any; - for (let item of _data["Array"]) - this.array.push(Student.fromJS(item)); - } - if (_data["Dictionary"]) { - this.dictionary = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (this.dictionary as any)[key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - } - } - - static fromJS(data: any): MyClass { - data = typeof data === 'object' ? data : {}; - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Name"] = this.name; - data["DateOfBirth"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined as any; - if (Array.isArray(this.primitiveArray)) { - data["PrimitiveArray"] = []; - for (let item of this.primitiveArray) - data["PrimitiveArray"].push(item); - } - if (this.primitiveDictionary) { - data["PrimitiveDictionary"] = {}; - for (let key in this.primitiveDictionary) { - if (this.primitiveDictionary.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (this.primitiveDictionary as any)[key]; - } - } - if (Array.isArray(this.dateArray)) { - data["DateArray"] = []; - for (let item of this.dateArray) - data["DateArray"].push(item.toISOString()); - } - if (this.dateDictionary) { - data["DateDictionary"] = {}; - for (let key in this.dateDictionary) { - if (this.dateDictionary.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = this.dateDictionary[key] ? this.dateDictionary[key].toISOString() : undefined as any; - } - } - data["Reference"] = this.reference ? this.reference.toJSON() : undefined as any; - if (Array.isArray(this.array)) { - data["Array"] = []; - for (let item of this.array) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - if (this.dictionary) { - data["Dictionary"] = {}; - for (let key in this.dictionary) { - if (this.dictionary.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = this.dictionary[key] ? this.dictionary[key].toJSON() : undefined as any; - } - } - return data; - } -} - -export interface IMyClass { - name: string; - dateOfBirth: Date; - primitiveArray: number[]; - primitiveDictionary: { [key: string]: number; }; - dateArray: Date[]; - dateDictionary: { [key: string]: Date; }; - reference: Student; - array: Student[]; - dictionary: { [key: string]: Student; }; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.1.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.1.verified.txt deleted file mode 100644 index 5931b034a..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.1.verified.txt +++ /dev/null @@ -1,214 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person implements IPerson { - firstName: string | undefined; - lastName: string | undefined; - - constructor(data?: IPerson) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - } - - init(_data?: any) { - if (_data) { - this.firstName = _data["FirstName"]; - this.lastName = _data["LastName"]; - } - } - - static fromJS(data: any): Person { - data = typeof data === 'object' ? data : {}; - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["FirstName"] = this.firstName; - data["LastName"] = this.lastName; - return data; - } -} - -export interface IPerson { - firstName: string | undefined; - lastName: string | undefined; -} - -export class Student extends Person implements IStudent { - study: string | undefined; - - constructor(data?: IStudent) { - super(data); - } - - init(_data?: any) { - super.init(_data); - if (_data) { - this.study = _data["Study"]; - } - } - - static fromJS(data: any): Student { - data = typeof data === 'object' ? data : {}; - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Study"] = this.study; - super.toJSON(data); - return data; - } -} - -export interface IStudent extends IPerson { - study: string | undefined; -} - -export class MyClass implements IMyClass { - name: string | undefined; - dateOfBirth: Date; - primitiveArray: number[] | undefined; - primitiveDictionary: { [key: string]: number; } | undefined; - dateArray: Date[] | undefined; - dateDictionary: { [key: string]: Date; } | undefined; - reference: Student | undefined; - array: Student[] | undefined; - dictionary: { [key: string]: Student; } | undefined; - - constructor(data?: IMyClass) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - if (!data) { - this.name = "foo"; - } - } - - init(_data?: any) { - if (_data) { - this.name = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.dateOfBirth = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - if (Array.isArray(_data["PrimitiveArray"])) { - this.primitiveArray = [] as any; - for (let item of _data["PrimitiveArray"]) - this.primitiveArray.push(item); - } - if (_data["PrimitiveDictionary"]) { - this.primitiveDictionary = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (this.primitiveDictionary as any)[key] = _data["PrimitiveDictionary"][key]; - } - } - if (Array.isArray(_data["DateArray"])) { - this.dateArray = [] as any; - for (let item of _data["DateArray"]) - this.dateArray.push(new Date(item)); - } - if (_data["DateDictionary"]) { - this.dateDictionary = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (this.dateDictionary as any)[key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.reference = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - if (Array.isArray(_data["Array"])) { - this.array = [] as any; - for (let item of _data["Array"]) - this.array.push(Student.fromJS(item)); - } - if (_data["Dictionary"]) { - this.dictionary = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (this.dictionary as any)[key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - } - } - - static fromJS(data: any): MyClass { - data = typeof data === 'object' ? data : {}; - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Name"] = this.name; - data["DateOfBirth"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined as any; - if (Array.isArray(this.primitiveArray)) { - data["PrimitiveArray"] = []; - for (let item of this.primitiveArray) - data["PrimitiveArray"].push(item); - } - if (this.primitiveDictionary) { - data["PrimitiveDictionary"] = {}; - for (let key in this.primitiveDictionary) { - if (this.primitiveDictionary.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (this.primitiveDictionary as any)[key]; - } - } - if (Array.isArray(this.dateArray)) { - data["DateArray"] = []; - for (let item of this.dateArray) - data["DateArray"].push(item.toISOString()); - } - if (this.dateDictionary) { - data["DateDictionary"] = {}; - for (let key in this.dateDictionary) { - if (this.dateDictionary.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = this.dateDictionary[key] ? this.dateDictionary[key].toISOString() : undefined as any; - } - } - data["Reference"] = this.reference ? this.reference.toJSON() : undefined as any; - if (Array.isArray(this.array)) { - data["Array"] = []; - for (let item of this.array) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - if (this.dictionary) { - data["Dictionary"] = {}; - for (let key in this.dictionary) { - if (this.dictionary.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = this.dictionary[key] ? this.dictionary[key].toJSON() : undefined as any; - } - } - return data; - } -} - -export interface IMyClass { - name: string | undefined; - dateOfBirth: Date; - primitiveArray: number[] | undefined; - primitiveDictionary: { [key: string]: number; } | undefined; - dateArray: Date[] | undefined; - dateDictionary: { [key: string]: Date; } | undefined; - reference: Student | undefined; - array: Student[] | undefined; - dictionary: { [key: string]: Student; } | undefined; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.7.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.7.verified.txt deleted file mode 100644 index 2e51f210e..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Class_version=2.7.verified.txt +++ /dev/null @@ -1,214 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person implements IPerson { - firstName!: string | undefined; - lastName!: string | undefined; - - constructor(data?: IPerson) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - } - - init(_data?: any) { - if (_data) { - this.firstName = _data["FirstName"]; - this.lastName = _data["LastName"]; - } - } - - static fromJS(data: any): Person { - data = typeof data === 'object' ? data : {}; - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["FirstName"] = this.firstName; - data["LastName"] = this.lastName; - return data; - } -} - -export interface IPerson { - firstName: string | undefined; - lastName: string | undefined; -} - -export class Student extends Person implements IStudent { - study!: string | undefined; - - constructor(data?: IStudent) { - super(data); - } - - init(_data?: any) { - super.init(_data); - if (_data) { - this.study = _data["Study"]; - } - } - - static fromJS(data: any): Student { - data = typeof data === 'object' ? data : {}; - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Study"] = this.study; - super.toJSON(data); - return data; - } -} - -export interface IStudent extends IPerson { - study: string | undefined; -} - -export class MyClass implements IMyClass { - name!: string | undefined; - dateOfBirth!: Date; - primitiveArray!: number[] | undefined; - primitiveDictionary!: { [key: string]: number; } | undefined; - dateArray!: Date[] | undefined; - dateDictionary!: { [key: string]: Date; } | undefined; - reference!: Student | undefined; - array!: Student[] | undefined; - dictionary!: { [key: string]: Student; } | undefined; - - constructor(data?: IMyClass) { - if (data) { - for (var property in data) { - if (data.hasOwnProperty(property)) - (this as any)[property] = (data as any)[property]; - } - } - if (!data) { - this.name = "foo"; - } - } - - init(_data?: any) { - if (_data) { - this.name = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.dateOfBirth = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - if (Array.isArray(_data["PrimitiveArray"])) { - this.primitiveArray = [] as any; - for (let item of _data["PrimitiveArray"]) - this.primitiveArray!.push(item); - } - if (_data["PrimitiveDictionary"]) { - this.primitiveDictionary = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (this.primitiveDictionary as any)![key] = _data["PrimitiveDictionary"][key]; - } - } - if (Array.isArray(_data["DateArray"])) { - this.dateArray = [] as any; - for (let item of _data["DateArray"]) - this.dateArray!.push(new Date(item)); - } - if (_data["DateDictionary"]) { - this.dateDictionary = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (this.dateDictionary as any)![key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.reference = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - if (Array.isArray(_data["Array"])) { - this.array = [] as any; - for (let item of _data["Array"]) - this.array!.push(Student.fromJS(item)); - } - if (_data["Dictionary"]) { - this.dictionary = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (this.dictionary as any)![key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - } - } - - static fromJS(data: any): MyClass { - data = typeof data === 'object' ? data : {}; - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - data["Name"] = this.name; - data["DateOfBirth"] = this.dateOfBirth ? this.dateOfBirth.toISOString() : undefined as any; - if (Array.isArray(this.primitiveArray)) { - data["PrimitiveArray"] = []; - for (let item of this.primitiveArray) - data["PrimitiveArray"].push(item); - } - if (this.primitiveDictionary) { - data["PrimitiveDictionary"] = {}; - for (let key in this.primitiveDictionary) { - if (this.primitiveDictionary.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (this.primitiveDictionary as any)[key]; - } - } - if (Array.isArray(this.dateArray)) { - data["DateArray"] = []; - for (let item of this.dateArray) - data["DateArray"].push(item.toISOString()); - } - if (this.dateDictionary) { - data["DateDictionary"] = {}; - for (let key in this.dateDictionary) { - if (this.dateDictionary.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = this.dateDictionary[key] ? this.dateDictionary[key].toISOString() : undefined as any; - } - } - data["Reference"] = this.reference ? this.reference.toJSON() : undefined as any; - if (Array.isArray(this.array)) { - data["Array"] = []; - for (let item of this.array) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - if (this.dictionary) { - data["Dictionary"] = {}; - for (let key in this.dictionary) { - if (this.dictionary.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = this.dictionary[key] ? this.dictionary[key].toJSON() : undefined as any; - } - } - return data; - } -} - -export interface IMyClass { - name: string | undefined; - dateOfBirth: Date; - primitiveArray: number[] | undefined; - primitiveDictionary: { [key: string]: number; } | undefined; - dateArray: Date[] | undefined; - dateDictionary: { [key: string]: Date; } | undefined; - reference: Student | undefined; - array: Student[] | undefined; - dictionary: { [key: string]: Student; } | undefined; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.1.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface.verified.txt similarity index 100% rename from src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.1.verified.txt rename to src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface.verified.txt diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=1.8.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=1.8.verified.txt deleted file mode 100644 index 10497576f..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=1.8.verified.txt +++ /dev/null @@ -1,31 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export interface Person { - FirstName: string; - LastName: string; -} - -export interface Student extends Person { - Study: string; -} - -export interface MyClass { - Name: string; - DateOfBirth: Date; - PrimitiveArray: number[]; - PrimitiveDictionary: { [key: string]: number; }; - DateArray: Date[]; - DateDictionary: { [key: string]: Date; }; - Reference: Student; - Array: Student[]; - Dictionary: { [key: string]: Student; }; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.7.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.7.verified.txt deleted file mode 100644 index 58045b09e..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=2.7.verified.txt +++ /dev/null @@ -1,31 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export interface Person { - FirstName: string | undefined; - LastName: string | undefined; -} - -export interface Student extends Person { - Study: string | undefined; -} - -export interface MyClass { - Name: string | undefined; - DateOfBirth: Date; - PrimitiveArray: number[] | undefined; - PrimitiveDictionary: { [key: string]: number; } | undefined; - DateArray: Date[] | undefined; - DateDictionary: { [key: string]: Date; } | undefined; - Reference: Student | undefined; - Array: Student[] | undefined; - Dictionary: { [key: string]: Student; } | undefined; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=4.3.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=4.3.verified.txt deleted file mode 100644 index 58045b09e..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=Interface_version=4.3.verified.txt +++ /dev/null @@ -1,31 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export interface Person { - FirstName: string | undefined; - LastName: string | undefined; -} - -export interface Student extends Person { - Study: string | undefined; -} - -export interface MyClass { - Name: string | undefined; - DateOfBirth: Date; - PrimitiveArray: number[] | undefined; - PrimitiveDictionary: { [key: string]: number; } | undefined; - DateArray: Date[] | undefined; - DateDictionary: { [key: string]: Date; } | undefined; - Reference: Student | undefined; - Array: Student[] | undefined; - Dictionary: { [key: string]: Student; } | undefined; -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=4.3.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass.verified.txt similarity index 100% rename from src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=4.3.verified.txt rename to src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass.verified.txt diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=1.8.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=1.8.verified.txt deleted file mode 100644 index 2d78f2eb4..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=1.8.verified.txt +++ /dev/null @@ -1,231 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person { - firstName = ko.observable(); - lastName = ko.observable(); - - - - init(data?: any) { - if (data !== undefined) { - var firstName_: any; - firstName_ = _data["FirstName"]; - this.firstName(firstName_); - - var lastName_: any; - lastName_ = _data["LastName"]; - this.lastName(lastName_); - - } - } - - static fromJS(data: any): Person { - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let firstName_: any = this.firstName(); - data["FirstName"] = firstName_; - - let lastName_: any = this.lastName(); - data["LastName"] = lastName_; - - return data; - } -} - -export class Student extends Person { - study = ko.observable(); - - - - init(data?: any) { - super.init(data); - if (data !== undefined) { - var study_: any; - study_ = _data["Study"]; - this.study(study_); - - } - } - - static fromJS(data: any): Student { - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let study_: any = this.study(); - data["Study"] = study_; - - super.toJSON(data); - return data; - } -} - -export class MyClass { - name = ko.observable("foo"); - dateOfBirth = ko.observable(); - primitiveArray = ko.observableArray(); - primitiveDictionary = ko.observable<{ [key: string]: number; }>(); - dateArray = ko.observableArray(); - dateDictionary = ko.observable<{ [key: string]: Date; }>(); - reference = ko.observable(); - array = ko.observableArray(); - dictionary = ko.observable<{ [key: string]: Student; }>(); - - - - init(data?: any) { - if (data !== undefined) { - var name_: any; - name_ = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.name(name_); - - var dateOfBirth_: any; - dateOfBirth_ = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - this.dateOfBirth(dateOfBirth_); - - var primitiveArray_: any; - if (Array.isArray(_data["PrimitiveArray"])) { - primitiveArray_ = [] as any; - for (let item of _data["PrimitiveArray"]) - primitiveArray_.push(item); - } - this.primitiveArray(primitiveArray_); - - var primitiveDictionary_: any; - if (_data["PrimitiveDictionary"]) { - primitiveDictionary_ = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (primitiveDictionary_ as any)[key] = _data["PrimitiveDictionary"][key]; - } - } - this.primitiveDictionary(primitiveDictionary_); - - var dateArray_: any; - if (Array.isArray(_data["DateArray"])) { - dateArray_ = [] as any; - for (let item of _data["DateArray"]) - dateArray_.push(new Date(item)); - } - this.dateArray(dateArray_); - - var dateDictionary_: any; - if (_data["DateDictionary"]) { - dateDictionary_ = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (dateDictionary_ as any)[key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.dateDictionary(dateDictionary_); - - var reference_: any; - reference_ = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - this.reference(reference_); - - var array_: any; - if (Array.isArray(_data["Array"])) { - array_ = [] as any; - for (let item of _data["Array"]) - array_.push(Student.fromJS(item)); - } - this.array(array_); - - var dictionary_: any; - if (_data["Dictionary"]) { - dictionary_ = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (dictionary_ as any)[key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - this.dictionary(dictionary_); - - } - } - - static fromJS(data: any): MyClass { - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let name_: any = this.name(); - data["Name"] = name_; - - let dateOfBirth_: any = this.dateOfBirth(); - data["DateOfBirth"] = dateOfBirth_ ? dateOfBirth_.toISOString() : undefined as any; - - let primitiveArray_: any = this.primitiveArray(); - if (Array.isArray(primitiveArray_)) { - data["PrimitiveArray"] = []; - for (let item of primitiveArray_) - data["PrimitiveArray"].push(item); - } - - let primitiveDictionary_: any = this.primitiveDictionary(); - if (primitiveDictionary_) { - data["PrimitiveDictionary"] = {}; - for (let key in primitiveDictionary_) { - if (primitiveDictionary_.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (primitiveDictionary_ as any)[key]; - } - } - - let dateArray_: any = this.dateArray(); - if (Array.isArray(dateArray_)) { - data["DateArray"] = []; - for (let item of dateArray_) - data["DateArray"].push(item.toISOString()); - } - - let dateDictionary_: any = this.dateDictionary(); - if (dateDictionary_) { - data["DateDictionary"] = {}; - for (let key in dateDictionary_) { - if (dateDictionary_.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = dateDictionary_[key] ? dateDictionary_[key].toISOString() : undefined as any; - } - } - - let reference_: any = this.reference(); - data["Reference"] = reference_ ? reference_.toJSON() : undefined as any; - - let array_: any = this.array(); - if (Array.isArray(array_)) { - data["Array"] = []; - for (let item of array_) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - - let dictionary_: any = this.dictionary(); - if (dictionary_) { - data["Dictionary"] = {}; - for (let key in dictionary_) { - if (dictionary_.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = dictionary_[key] ? dictionary_[key].toJSON() : undefined as any; - } - } - - return data; - } -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.1.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.1.verified.txt deleted file mode 100644 index 4c7cb50db..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.1.verified.txt +++ /dev/null @@ -1,231 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person { - firstName = ko.observable(); - lastName = ko.observable(); - - - - init(data?: any) { - if (data !== undefined) { - var firstName_: any; - firstName_ = _data["FirstName"]; - this.firstName(firstName_); - - var lastName_: any; - lastName_ = _data["LastName"]; - this.lastName(lastName_); - - } - } - - static fromJS(data: any): Person { - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let firstName_: any = this.firstName(); - data["FirstName"] = firstName_; - - let lastName_: any = this.lastName(); - data["LastName"] = lastName_; - - return data; - } -} - -export class Student extends Person { - study = ko.observable(); - - - - init(data?: any) { - super.init(data); - if (data !== undefined) { - var study_: any; - study_ = _data["Study"]; - this.study(study_); - - } - } - - static fromJS(data: any): Student { - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let study_: any = this.study(); - data["Study"] = study_; - - super.toJSON(data); - return data; - } -} - -export class MyClass { - name = ko.observable("foo"); - dateOfBirth = ko.observable(); - primitiveArray = ko.observableArray(); - primitiveDictionary = ko.observable<{ [key: string]: number; } | undefined>(); - dateArray = ko.observableArray(); - dateDictionary = ko.observable<{ [key: string]: Date; } | undefined>(); - reference = ko.observable(); - array = ko.observableArray(); - dictionary = ko.observable<{ [key: string]: Student; } | undefined>(); - - - - init(data?: any) { - if (data !== undefined) { - var name_: any; - name_ = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.name(name_); - - var dateOfBirth_: any; - dateOfBirth_ = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - this.dateOfBirth(dateOfBirth_); - - var primitiveArray_: any; - if (Array.isArray(_data["PrimitiveArray"])) { - primitiveArray_ = [] as any; - for (let item of _data["PrimitiveArray"]) - primitiveArray_.push(item); - } - this.primitiveArray(primitiveArray_); - - var primitiveDictionary_: any; - if (_data["PrimitiveDictionary"]) { - primitiveDictionary_ = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (primitiveDictionary_ as any)[key] = _data["PrimitiveDictionary"][key]; - } - } - this.primitiveDictionary(primitiveDictionary_); - - var dateArray_: any; - if (Array.isArray(_data["DateArray"])) { - dateArray_ = [] as any; - for (let item of _data["DateArray"]) - dateArray_.push(new Date(item)); - } - this.dateArray(dateArray_); - - var dateDictionary_: any; - if (_data["DateDictionary"]) { - dateDictionary_ = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (dateDictionary_ as any)[key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.dateDictionary(dateDictionary_); - - var reference_: any; - reference_ = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - this.reference(reference_); - - var array_: any; - if (Array.isArray(_data["Array"])) { - array_ = [] as any; - for (let item of _data["Array"]) - array_.push(Student.fromJS(item)); - } - this.array(array_); - - var dictionary_: any; - if (_data["Dictionary"]) { - dictionary_ = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (dictionary_ as any)[key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - this.dictionary(dictionary_); - - } - } - - static fromJS(data: any): MyClass { - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let name_: any = this.name(); - data["Name"] = name_; - - let dateOfBirth_: any = this.dateOfBirth(); - data["DateOfBirth"] = dateOfBirth_ ? dateOfBirth_.toISOString() : undefined as any; - - let primitiveArray_: any = this.primitiveArray(); - if (Array.isArray(primitiveArray_)) { - data["PrimitiveArray"] = []; - for (let item of primitiveArray_) - data["PrimitiveArray"].push(item); - } - - let primitiveDictionary_: any = this.primitiveDictionary(); - if (primitiveDictionary_) { - data["PrimitiveDictionary"] = {}; - for (let key in primitiveDictionary_) { - if (primitiveDictionary_.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (primitiveDictionary_ as any)[key]; - } - } - - let dateArray_: any = this.dateArray(); - if (Array.isArray(dateArray_)) { - data["DateArray"] = []; - for (let item of dateArray_) - data["DateArray"].push(item.toISOString()); - } - - let dateDictionary_: any = this.dateDictionary(); - if (dateDictionary_) { - data["DateDictionary"] = {}; - for (let key in dateDictionary_) { - if (dateDictionary_.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = dateDictionary_[key] ? dateDictionary_[key].toISOString() : undefined as any; - } - } - - let reference_: any = this.reference(); - data["Reference"] = reference_ ? reference_.toJSON() : undefined as any; - - let array_: any = this.array(); - if (Array.isArray(array_)) { - data["Array"] = []; - for (let item of array_) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - - let dictionary_: any = this.dictionary(); - if (dictionary_) { - data["Dictionary"] = {}; - for (let key in dictionary_) { - if (dictionary_.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = dictionary_[key] ? dictionary_[key].toJSON() : undefined as any; - } - } - - return data; - } -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.7.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.7.verified.txt deleted file mode 100644 index 35213907a..000000000 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.Verify_output_style=KnockoutClass_version=2.7.verified.txt +++ /dev/null @@ -1,231 +0,0 @@ -//---------------------- -// -// -//---------------------- - - - - - - - -export class Person { - firstName = ko.observable(); - lastName = ko.observable(); - - - - init(data?: any) { - if (data !== undefined) { - var firstName_: any; - firstName_ = _data["FirstName"]; - this.firstName(firstName_); - - var lastName_: any; - lastName_ = _data["LastName"]; - this.lastName(lastName_); - - } - } - - static fromJS(data: any): Person { - let result = new Person(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let firstName_: any = this.firstName(); - data["FirstName"] = firstName_; - - let lastName_: any = this.lastName(); - data["LastName"] = lastName_; - - return data; - } -} - -export class Student extends Person { - study = ko.observable(); - - - - init(data?: any) { - super.init(data); - if (data !== undefined) { - var study_: any; - study_ = _data["Study"]; - this.study(study_); - - } - } - - static fromJS(data: any): Student { - let result = new Student(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let study_: any = this.study(); - data["Study"] = study_; - - super.toJSON(data); - return data; - } -} - -export class MyClass { - name = ko.observable("foo"); - dateOfBirth = ko.observable(); - primitiveArray = ko.observableArray(); - primitiveDictionary = ko.observable<{ [key: string]: number; } | undefined>(); - dateArray = ko.observableArray(); - dateDictionary = ko.observable<{ [key: string]: Date; } | undefined>(); - reference = ko.observable(); - array = ko.observableArray(); - dictionary = ko.observable<{ [key: string]: Student; } | undefined>(); - - - - init(data?: any) { - if (data !== undefined) { - var name_: any; - name_ = _data["Name"] !== undefined ? _data["Name"] : "foo"; - this.name(name_); - - var dateOfBirth_: any; - dateOfBirth_ = _data["DateOfBirth"] ? new Date(_data["DateOfBirth"].toString()) : undefined as any; - this.dateOfBirth(dateOfBirth_); - - var primitiveArray_: any; - if (Array.isArray(_data["PrimitiveArray"])) { - primitiveArray_ = [] as any; - for (let item of _data["PrimitiveArray"]) - primitiveArray_!.push(item); - } - this.primitiveArray(primitiveArray_); - - var primitiveDictionary_: any; - if (_data["PrimitiveDictionary"]) { - primitiveDictionary_ = {} as any; - for (let key in _data["PrimitiveDictionary"]) { - if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (primitiveDictionary_ as any)![key] = _data["PrimitiveDictionary"][key]; - } - } - this.primitiveDictionary(primitiveDictionary_); - - var dateArray_: any; - if (Array.isArray(_data["DateArray"])) { - dateArray_ = [] as any; - for (let item of _data["DateArray"]) - dateArray_!.push(new Date(item)); - } - this.dateArray(dateArray_); - - var dateDictionary_: any; - if (_data["DateDictionary"]) { - dateDictionary_ = {} as any; - for (let key in _data["DateDictionary"]) { - if (_data["DateDictionary"].hasOwnProperty(key)) - (dateDictionary_ as any)![key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; - } - } - this.dateDictionary(dateDictionary_); - - var reference_: any; - reference_ = _data["Reference"] ? Student.fromJS(_data["Reference"]) : undefined as any; - this.reference(reference_); - - var array_: any; - if (Array.isArray(_data["Array"])) { - array_ = [] as any; - for (let item of _data["Array"]) - array_!.push(Student.fromJS(item)); - } - this.array(array_); - - var dictionary_: any; - if (_data["Dictionary"]) { - dictionary_ = {} as any; - for (let key in _data["Dictionary"]) { - if (_data["Dictionary"].hasOwnProperty(key)) - (dictionary_ as any)![key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); - } - } - this.dictionary(dictionary_); - - } - } - - static fromJS(data: any): MyClass { - let result = new MyClass(); - result.init(data); - return result; - } - - toJSON(data?: any) { - data = typeof data === 'object' ? data : {}; - let name_: any = this.name(); - data["Name"] = name_; - - let dateOfBirth_: any = this.dateOfBirth(); - data["DateOfBirth"] = dateOfBirth_ ? dateOfBirth_.toISOString() : undefined as any; - - let primitiveArray_: any = this.primitiveArray(); - if (Array.isArray(primitiveArray_)) { - data["PrimitiveArray"] = []; - for (let item of primitiveArray_) - data["PrimitiveArray"].push(item); - } - - let primitiveDictionary_: any = this.primitiveDictionary(); - if (primitiveDictionary_) { - data["PrimitiveDictionary"] = {}; - for (let key in primitiveDictionary_) { - if (primitiveDictionary_.hasOwnProperty(key)) - (data["PrimitiveDictionary"] as any)[key] = (primitiveDictionary_ as any)[key]; - } - } - - let dateArray_: any = this.dateArray(); - if (Array.isArray(dateArray_)) { - data["DateArray"] = []; - for (let item of dateArray_) - data["DateArray"].push(item.toISOString()); - } - - let dateDictionary_: any = this.dateDictionary(); - if (dateDictionary_) { - data["DateDictionary"] = {}; - for (let key in dateDictionary_) { - if (dateDictionary_.hasOwnProperty(key)) - (data["DateDictionary"] as any)[key] = dateDictionary_[key] ? dateDictionary_[key].toISOString() : undefined as any; - } - } - - let reference_: any = this.reference(); - data["Reference"] = reference_ ? reference_.toJSON() : undefined as any; - - let array_: any = this.array(); - if (Array.isArray(array_)) { - data["Array"] = []; - for (let item of array_) - data["Array"].push(item ? item.toJSON() : undefined as any); - } - - let dictionary_: any = this.dictionary(); - if (dictionary_) { - data["Dictionary"] = {}; - for (let key in dictionary_) { - if (dictionary_.hasOwnProperty(key)) - (data["Dictionary"] as any)[key] = dictionary_[key] ? dictionary_[key].toJSON() : undefined as any; - } - } - - return data; - } -} \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_is_disabled_then_data_is_not_checked_and_default_initialization_is_always_exectued.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_is_disabled_then_data_is_not_checked_and_default_initialization_is_always_exectued.verified.txt index f7a0cadc2..c18dbea3d 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_is_disabled_then_data_is_not_checked_and_default_initialization_is_always_exectued.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_is_disabled_then_data_is_not_checked_and_default_initialization_is_always_exectued.verified.txt @@ -76,18 +76,18 @@ export class MyDerivedClass extends MyBaseClass { this._discriminator = "MyDerivedClass"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); } - static fromJS(data: any): MyDerivedClass { + static override fromJS(data: any): MyDerivedClass { data = typeof data === 'object' ? data : {}; let result = new MyDerivedClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; super.toJSON(data); return data; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_then_no_interfaces_are_generated.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_then_no_interfaces_are_generated.verified.txt index a9748260e..99119f61d 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_then_no_interfaces_are_generated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_GenerateConstructorInterface_then_no_interfaces_are_generated.verified.txt @@ -40,21 +40,21 @@ export class Student extends Person { study!: string | undefined; - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.study = _data["Study"]; } } - static fromJS(data: any): Student { + static override fromJS(data: any): Student { data = typeof data === 'object' ? data : {}; let result = new Student(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Study"] = this.study; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_Knockout_class_is_generated_then_initializers_are_correct.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_Knockout_class_is_generated_then_initializers_are_correct.verified.txt index 4c7cb50db..18e10b234 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_Knockout_class_is_generated_then_initializers_are_correct.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_Knockout_class_is_generated_then_initializers_are_correct.verified.txt @@ -51,7 +51,7 @@ export class Student extends Person { - init(data?: any) { + override init(data?: any) { super.init(data); if (data !== undefined) { var study_: any; @@ -61,13 +61,13 @@ export class Student extends Person { } } - static fromJS(data: any): Student { + static override fromJS(data: any): Student { let result = new Student(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; let study_: any = this.study(); data["Study"] = study_; @@ -104,7 +104,7 @@ export class MyClass { if (Array.isArray(_data["PrimitiveArray"])) { primitiveArray_ = [] as any; for (let item of _data["PrimitiveArray"]) - primitiveArray_.push(item); + primitiveArray_!.push(item); } this.primitiveArray(primitiveArray_); @@ -113,7 +113,7 @@ export class MyClass { primitiveDictionary_ = {} as any; for (let key in _data["PrimitiveDictionary"]) { if (_data["PrimitiveDictionary"].hasOwnProperty(key)) - (primitiveDictionary_ as any)[key] = _data["PrimitiveDictionary"][key]; + (primitiveDictionary_ as any)![key] = _data["PrimitiveDictionary"][key]; } } this.primitiveDictionary(primitiveDictionary_); @@ -122,7 +122,7 @@ export class MyClass { if (Array.isArray(_data["DateArray"])) { dateArray_ = [] as any; for (let item of _data["DateArray"]) - dateArray_.push(new Date(item)); + dateArray_!.push(new Date(item)); } this.dateArray(dateArray_); @@ -131,7 +131,7 @@ export class MyClass { dateDictionary_ = {} as any; for (let key in _data["DateDictionary"]) { if (_data["DateDictionary"].hasOwnProperty(key)) - (dateDictionary_ as any)[key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; + (dateDictionary_ as any)![key] = _data["DateDictionary"][key] ? new Date(_data["DateDictionary"][key].toString()) : undefined as any; } } this.dateDictionary(dateDictionary_); @@ -144,7 +144,7 @@ export class MyClass { if (Array.isArray(_data["Array"])) { array_ = [] as any; for (let item of _data["Array"]) - array_.push(Student.fromJS(item)); + array_!.push(Student.fromJS(item)); } this.array(array_); @@ -153,7 +153,7 @@ export class MyClass { dictionary_ = {} as any; for (let key in _data["Dictionary"]) { if (_data["Dictionary"].hasOwnProperty(key)) - (dictionary_ as any)[key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); + (dictionary_ as any)![key] = _data["Dictionary"][key] ? Student.fromJS(_data["Dictionary"][key]) : new Student(); } } this.dictionary(dictionary_); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_add_export_keyword_is_false_with_knockout_class_dont_add_export_before_class.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_add_export_keyword_is_false_with_knockout_class_dont_add_export_before_class.verified.txt index 7f373f0d0..791b0f7b2 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_add_export_keyword_is_false_with_knockout_class_dont_add_export_before_class.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_add_export_keyword_is_false_with_knockout_class_dont_add_export_before_class.verified.txt @@ -51,7 +51,7 @@ class Student extends Person { - init(data?: any) { + override init(data?: any) { super.init(data); if (data !== undefined) { var study_: any; @@ -61,13 +61,13 @@ class Student extends Person { } } - static fromJS(data: any): Student { + static override fromJS(data: any): Student { let result = new Student(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; let study_: any = this.study(); data["Study"] = study_; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_array_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_array_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt index 2e325fe60..102981e6e 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_array_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_array_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt @@ -10,8 +10,8 @@ export class MyClass implements IMyClass { - a: string[]; - b: string[]; + a!: string[]; + b!: string[] | undefined; [key: string]: any; @@ -36,12 +36,12 @@ export class MyClass implements IMyClass { if (Array.isArray(_data["A"])) { this.a = [] as any; for (let item of _data["A"]) - this.a.push(item); + this.a!.push(item); } if (Array.isArray(_data["B"])) { this.b = [] as any; for (let item of _data["B"]) - this.b.push(item); + this.b!.push(item); } } } @@ -75,7 +75,7 @@ export class MyClass implements IMyClass { export interface IMyClass { a: string[]; - b: string[]; + b: string[] | undefined; [key: string]: any; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_dictionary_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_dictionary_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt index 6cc0e4439..73aaef5a0 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_dictionary_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_dictionary_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt @@ -10,8 +10,8 @@ export class MyClass implements IMyClass { - a: { [key: string]: string; }; - b: { [key: string]: string; }; + a!: { [key: string]: string; }; + b!: { [key: string]: string; } | undefined; [key: string]: any; @@ -37,14 +37,14 @@ export class MyClass implements IMyClass { this.a = {} as any; for (let key in _data["A"]) { if (_data["A"].hasOwnProperty(key)) - (this.a as any)[key] = _data["A"][key]; + (this.a as any)![key] = _data["A"][key]; } } if (_data["B"]) { this.b = {} as any; for (let key in _data["B"]) { if (_data["B"].hasOwnProperty(key)) - (this.b as any)[key] = _data["B"][key]; + (this.b as any)![key] = _data["B"][key]; } } } @@ -83,7 +83,7 @@ export class MyClass implements IMyClass { export interface IMyClass { a: { [key: string]: string; }; - b: { [key: string]: string; }; + b: { [key: string]: string; } | undefined; [key: string]: any; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_export_types_is_false_dont_add_export_before_class_and_interface.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_export_types_is_false_dont_add_export_before_class_and_interface.verified.txt index 9ac5eeda0..053f7776c 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_export_types_is_false_dont_add_export_before_class_and_interface.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_export_types_is_false_dont_add_export_before_class_and_interface.verified.txt @@ -56,21 +56,21 @@ class Student extends Person implements IStudent { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.study = _data["Study"]; } } - static fromJS(data: any): Student { + static override fromJS(data: any): Student { data = typeof data === 'object' ? data : {}; let result = new Student(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Study"] = this.study; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_object_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_object_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt index 735cf97d2..46e654d31 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_object_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ClassGenerationTests.When_object_property_is_required_or_not_then_the_code_has_correct_initializer.verified.txt @@ -10,8 +10,8 @@ export class MyClass implements IMyClass { - a: A; - b: B; + a!: A; + b!: B | undefined; [key: string]: any; @@ -59,13 +59,13 @@ export class MyClass implements IMyClass { export interface IMyClass { a: A; - b: B; + b: B | undefined; [key: string]: any; } export class A implements IA { - a: string; + a!: string | undefined; [key: string]: any; @@ -107,13 +107,13 @@ export class A implements IA { } export interface IA { - a: string; + a: string | undefined; [key: string]: any; } export class B implements IB { - a: string; + a!: string | undefined; [key: string]: any; @@ -155,7 +155,7 @@ export class B implements IB { } export interface IB { - a: string; + a: string | undefined; [key: string]: any; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ConstructorInterfaceTests.When_constructor_interface_and_conversion_code_is_generated_then_it_is_correct.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ConstructorInterfaceTests.When_constructor_interface_and_conversion_code_is_generated_then_it_is_correct.verified.txt index 14c2adff4..e7e830ff8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ConstructorInterfaceTests.When_constructor_interface_and_conversion_code_is_generated_then_it_is_correct.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/ConstructorInterfaceTests.When_constructor_interface_and_conversion_code_is_generated_then_it_is_correct.verified.txt @@ -10,7 +10,7 @@ export class Address implements IAddress { - foo: string; + foo!: string | undefined; constructor(data?: IAddress) { if (data) { @@ -42,11 +42,11 @@ export class Address implements IAddress { } export interface IAddress { - foo: string; + foo: string | undefined; } export class Car implements ICar { - foo: string; + foo!: string | undefined; constructor(data?: ICar) { if (data) { @@ -78,11 +78,11 @@ export class Car implements ICar { } export interface ICar { - foo: string; + foo: string | undefined; } export class Skill implements ISkill { - foo: string; + foo!: string | undefined; constructor(data?: ISkill) { if (data) { @@ -114,16 +114,16 @@ export class Skill implements ISkill { } export interface ISkill { - foo: string; + foo: string | undefined; } export abstract class MyClass implements IMyClass { - supervisor: MyClass; - address: Address; - cars: Car[]; - skills: { [key: string]: Skill; }; - foo: Car[][]; - bar: { [key: string]: Skill[]; }; + supervisor!: MyClass | undefined; + address!: Address | undefined; + cars!: Car[] | undefined; + skills!: { [key: string]: Skill; } | undefined; + foo!: Car[][] | undefined; + bar!: { [key: string]: Skill[]; } | undefined; protected _discriminator: string; @@ -161,25 +161,25 @@ export abstract class MyClass implements IMyClass { if (Array.isArray(_data["Cars"])) { this.cars = [] as any; for (let item of _data["Cars"]) - this.cars.push(Car.fromJS(item)); + this.cars!.push(Car.fromJS(item)); } if (_data["Skills"]) { this.skills = {} as any; for (let key in _data["Skills"]) { if (_data["Skills"].hasOwnProperty(key)) - (this.skills as any)[key] = _data["Skills"][key] ? Skill.fromJS(_data["Skills"][key]) : new Skill(); + (this.skills as any)![key] = _data["Skills"][key] ? Skill.fromJS(_data["Skills"][key]) : new Skill(); } } if (Array.isArray(_data["Foo"])) { this.foo = [] as any; for (let item of _data["Foo"]) - this.foo.push(item); + this.foo!.push(item); } if (_data["Bar"]) { this.bar = {} as any; for (let key in _data["Bar"]) { if (_data["Bar"].hasOwnProperty(key)) - (this.bar as any)[key] = _data["Bar"][key] ? _data["Bar"][key].map((i: any) => Skill.fromJS(i)) : []; + (this.bar as any)![key] = _data["Bar"][key] ? _data["Bar"][key].map((i: any) => Skill.fromJS(i)) : []; } } } @@ -229,17 +229,17 @@ export abstract class MyClass implements IMyClass { } export interface IMyClass { - supervisor: MyClass; - address: IAddress; - cars: ICar[]; - skills: { [key: string]: ISkill; }; - foo: Car[][]; - bar: { [key: string]: Skill[]; }; + supervisor: MyClass | undefined; + address: IAddress | undefined; + cars: ICar[] | undefined; + skills: { [key: string]: ISkill; } | undefined; + foo: Car[][] | undefined; + bar: { [key: string]: Skill[]; } | undefined; } export class Student extends MyClass implements IStudent { - course: string; - car: Car; + course!: string | undefined; + car!: Car | undefined; constructor(data?: IStudent) { super(data); @@ -249,7 +249,7 @@ export class Student extends MyClass implements IStudent { this._discriminator = "Student"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.course = _data["Course"]; @@ -257,14 +257,14 @@ export class Student extends MyClass implements IStudent { } } - static fromJS(data: any): Student { + static override fromJS(data: any): Student { data = typeof data === 'object' ? data : {}; let result = new Student(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Course"] = this.course; data["Car"] = this.car ? this.car.toJSON() : undefined as any; @@ -274,6 +274,6 @@ export class Student extends MyClass implements IStudent { } export interface IStudent extends IMyClass { - course: string; - car: ICar; + course: string | undefined; + car: ICar | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_dto_dictionary_then_assignment_may_create_new_instance.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_dto_dictionary_then_assignment_may_create_new_instance.verified.txt index 9ea1331fd..c55a29b79 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_dto_dictionary_then_assignment_may_create_new_instance.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_dto_dictionary_then_assignment_may_create_new_instance.verified.txt @@ -10,7 +10,7 @@ export class MyItem implements IMyItem { - x: number; + x!: number; [key: string]: any; @@ -58,7 +58,7 @@ export interface IMyItem { } export class Test implements ITest { - resource: { [key: string]: MyItem; }; + resource!: { [key: string]: MyItem; }; [key: string]: any; @@ -84,7 +84,7 @@ export class Test implements ITest { this.resource = {} as any; for (let key in _data["resource"]) { if (_data["resource"].hasOwnProperty(key)) - (this.resource as any)[key] = _data["resource"][key] ? MyItem.fromJS(_data["resource"][key]) : new MyItem(); + (this.resource as any)![key] = _data["resource"][key] ? MyItem.fromJS(_data["resource"][key]) : new MyItem(); } } else { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_string_dictionary_then_assignment_is_correct.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_string_dictionary_then_assignment_is_correct.verified.txt index 9abd5b277..1b63b2f94 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_string_dictionary_then_assignment_is_correct.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_is_string_dictionary_then_assignment_is_correct.verified.txt @@ -10,7 +10,7 @@ export class Test implements ITest { - resource: { [key: string]: string; }; + resource!: { [key: string]: string; }; [key: string]: any; @@ -33,7 +33,7 @@ export class Test implements ITest { this.resource = {} as any; for (let key in _data["resource"]) { if (_data["resource"].hasOwnProperty(key)) - (this.resource as any)[key] = _data["resource"][key]; + (this.resource as any)![key] = _data["resource"][key]; } } } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=False.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=False.verified.txt index e63cc7fe9..9ecadc1d6 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=False.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=False.verified.txt @@ -54,7 +54,7 @@ export interface IDisplayValueDictionary { } export class Test implements ITest { - foo: DisplayValueDictionary; + foo!: DisplayValueDictionary | undefined; constructor(data?: ITest) { if (data) { @@ -86,5 +86,5 @@ export class Test implements ITest { } export interface ITest { - foo: DisplayValueDictionary; + foo: DisplayValueDictionary | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=True.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=True.verified.txt index c8e5d25da..b5527fb7b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=True.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=False_convertConstructorInterfaceData=True.verified.txt @@ -54,7 +54,7 @@ export interface IDisplayValueDictionary { } export class Test implements ITest { - foo: DisplayValueDictionary; + foo!: DisplayValueDictionary | undefined; constructor(data?: ITest) { if (data) { @@ -87,5 +87,5 @@ export class Test implements ITest { } export interface ITest { - foo: IDisplayValueDictionary; + foo: IDisplayValueDictionary | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=False.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=False.verified.txt index eb3e8b689..87dac3cf8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=False.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=False.verified.txt @@ -10,7 +10,7 @@ export class Test implements ITest { - foo: { [key: string]: string; }; + foo!: { [key: string]: string; } | undefined; constructor(data?: ITest) { if (data) { @@ -27,7 +27,7 @@ export class Test implements ITest { this.foo = {} as any; for (let key in _data["Foo"]) { if (_data["Foo"].hasOwnProperty(key)) - (this.foo as any)[key] = _data["Foo"][key]; + (this.foo as any)![key] = _data["Foo"][key]; } } } @@ -54,5 +54,5 @@ export class Test implements ITest { } export interface ITest { - foo: { [key: string]: string; }; + foo: { [key: string]: string; } | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=True.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=True.verified.txt index eb3e8b689..87dac3cf8 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=True.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/DictionaryTests.When_property_uses_custom_dictionary_class_then_class_is_generated_inlineNamedDictionaries=True_convertConstructorInterfaceData=True.verified.txt @@ -10,7 +10,7 @@ export class Test implements ITest { - foo: { [key: string]: string; }; + foo!: { [key: string]: string; } | undefined; constructor(data?: ITest) { if (data) { @@ -27,7 +27,7 @@ export class Test implements ITest { this.foo = {} as any; for (let key in _data["Foo"]) { if (_data["Foo"].hasOwnProperty(key)) - (this.foo as any)[key] = _data["Foo"][key]; + (this.foo as any)![key] = _data["Foo"][key]; } } } @@ -54,5 +54,5 @@ export class Test implements ITest { } export interface ITest { - foo: { [key: string]: string; }; + foo: { [key: string]: string; } | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_class_with_discriminator_has_base_class_then_csharp_is_generated_correctly.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_class_with_discriminator_has_base_class_then_csharp_is_generated_correctly.verified.txt index a4ac8876d..94e0182b6 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_class_with_discriminator_has_base_class_then_csharp_is_generated_correctly.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_class_with_discriminator_has_base_class_then_csharp_is_generated_correctly.verified.txt @@ -10,10 +10,10 @@ export class Exception implements IException { - message: string; - innerException: Exception | undefined; - source: string | undefined; - stackTrace: string | undefined; + message!: string; + innerException!: Exception | undefined; + source!: string | undefined; + stackTrace!: string | undefined; constructor(data?: IException) { if (data) { @@ -58,7 +58,7 @@ export interface IException { } export class ExceptionBase extends Exception implements IExceptionBase { - foo: string | undefined; + foo!: string | undefined; protected _discriminator: string; @@ -67,14 +67,14 @@ export class ExceptionBase extends Exception implements IExceptionBase { this._discriminator = "ExceptionBase"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.foo = _data["Foo"]; } } - static fromJS(data: any): ExceptionBase { + static override fromJS(data: any): ExceptionBase { data = typeof data === 'object' ? data : {}; if (data["kind"] === "MyException") { let result = new MyException(); @@ -86,7 +86,7 @@ export class ExceptionBase extends Exception implements IExceptionBase { return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["kind"] = this._discriminator; data["Foo"] = this.foo; @@ -101,28 +101,28 @@ export interface IExceptionBase extends IException { /** Foobar. */ export class MyException extends ExceptionBase implements IMyException { - bar: string | undefined; + bar!: string | undefined; constructor(data?: IMyException) { super(data); this._discriminator = "MyException"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.bar = _data["Bar"]; } } - static fromJS(data: any): MyException { + static override fromJS(data: any): MyException { data = typeof data === 'object' ? data : {}; let result = new MyException(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Bar"] = this.bar; super.toJSON(data); @@ -136,7 +136,7 @@ export interface IMyException extends IExceptionBase { } export class ExceptionContainer implements IExceptionContainer { - exception: ExceptionBase | undefined; + exception!: ExceptionBase | undefined; constructor(data?: IExceptionContainer) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_discriminator_does_not_match_typename_then_TypeScript_is_correct.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_discriminator_does_not_match_typename_then_TypeScript_is_correct.verified.txt index f6b29e407..8522622d1 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_discriminator_does_not_match_typename_then_TypeScript_is_correct.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_discriminator_does_not_match_typename_then_TypeScript_is_correct.verified.txt @@ -10,10 +10,10 @@ export class Exception implements IException { - message: string; - innerException: Exception | undefined; - source: string | undefined; - stackTrace: string | undefined; + message!: string; + innerException!: Exception | undefined; + source!: string | undefined; + stackTrace!: string | undefined; constructor(data?: IException) { if (data) { @@ -58,7 +58,7 @@ export interface IException { } export class ExceptionBase extends Exception implements IExceptionBase { - foo: string | undefined; + foo!: string | undefined; protected _discriminator: string; @@ -67,14 +67,14 @@ export class ExceptionBase extends Exception implements IExceptionBase { this._discriminator = "ExceptionBase"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.foo = _data["Foo"]; } } - static fromJS(data: any): ExceptionBase { + static override fromJS(data: any): ExceptionBase { data = typeof data === 'object' ? data : {}; if (data["kind"] === "FooBar") { let result = new MyException(); @@ -86,7 +86,7 @@ export class ExceptionBase extends Exception implements IExceptionBase { return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["kind"] = this._discriminator; data["Foo"] = this.foo; @@ -101,28 +101,28 @@ export interface IExceptionBase extends IException { /** Foobar. */ export class MyException extends ExceptionBase implements IMyException { - bar: string | undefined; + bar!: string | undefined; constructor(data?: IMyException) { super(data); this._discriminator = "FooBar"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.bar = _data["Bar"]; } } - static fromJS(data: any): MyException { + static override fromJS(data: any): MyException { data = typeof data === 'object' ? data : {}; let result = new MyException(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Bar"] = this.bar; super.toJSON(data); @@ -136,7 +136,7 @@ export interface IMyException extends IExceptionBase { } export class ExceptionContainer implements IExceptionContainer { - exception: ExceptionBase | undefined; + exception!: ExceptionBase | undefined; constructor(data?: IExceptionContainer) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=False.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=False.verified.txt index 0c305862d..e2068a81f 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=False.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=False.verified.txt @@ -56,7 +56,7 @@ export interface IEmptyClassInheritingDictionary { } export class ContainerClass implements IContainerClass { - customDictionary: EmptyClassInheritingDictionary | undefined; + customDictionary!: EmptyClassInheritingDictionary | undefined; constructor(data?: IContainerClass) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=True.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=True.verified.txt index fba73eb25..6b51024e3 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=True.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=False_convert=True.verified.txt @@ -56,7 +56,7 @@ export interface IEmptyClassInheritingDictionary { } export class ContainerClass implements IContainerClass { - customDictionary: EmptyClassInheritingDictionary | undefined; + customDictionary!: EmptyClassInheritingDictionary | undefined; constructor(data?: IContainerClass) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=False.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=False.verified.txt index aa8de16cd..5be65d5cf 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=False.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=False.verified.txt @@ -10,7 +10,7 @@ export class ContainerClass implements IContainerClass { - customDictionary: { [key: string]: any; } | undefined; + customDictionary!: { [key: string]: any; } | undefined; constructor(data?: IContainerClass) { if (data) { @@ -27,7 +27,7 @@ export class ContainerClass implements IContainerClass { this.customDictionary = {} as any; for (let key in _data["CustomDictionary"]) { if (_data["CustomDictionary"].hasOwnProperty(key)) - (this.customDictionary as any)[key] = _data["CustomDictionary"][key]; + (this.customDictionary as any)![key] = _data["CustomDictionary"][key]; } } } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=True.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=True.verified.txt index aa8de16cd..5be65d5cf 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=True.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_empty_class_inherits_from_dictionary_then_allOf_inheritance_still_works_inline=True_convert=True.verified.txt @@ -10,7 +10,7 @@ export class ContainerClass implements IContainerClass { - customDictionary: { [key: string]: any; } | undefined; + customDictionary!: { [key: string]: any; } | undefined; constructor(data?: IContainerClass) { if (data) { @@ -27,7 +27,7 @@ export class ContainerClass implements IContainerClass { this.customDictionary = {} as any; for (let key in _data["CustomDictionary"]) { if (_data["CustomDictionary"].hasOwnProperty(key)) - (this.customDictionary as any)[key] = _data["CustomDictionary"][key]; + (this.customDictionary as any)![key] = _data["CustomDictionary"][key]; } } } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=JsonSchema.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=JsonSchema.verified.txt index 00fadf84d..e601036e9 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=JsonSchema.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=JsonSchema.verified.txt @@ -10,7 +10,7 @@ export class Person implements IPerson { - skills: { [key: string]: SkillLevel; }; + skills!: { [key: string]: SkillLevel; }; [key: string]: any; @@ -36,7 +36,7 @@ export class Person implements IPerson { this.skills = {} as any; for (let key in _data["Skills"]) { if (_data["Skills"].hasOwnProperty(key)) - (this.skills as any)[key] = _data["Skills"][key]; + (this.skills as any)![key] = _data["Skills"][key]; } } } @@ -85,8 +85,8 @@ export enum SkillLevel { } export class Teacher extends Person implements ITeacher { - course: string; - skillLevel: SkillLevel; + course!: string; + skillLevel!: SkillLevel; [key: string]: any; @@ -98,7 +98,7 @@ export class Teacher extends Person implements ITeacher { this._discriminator = "Teacher"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -110,14 +110,14 @@ export class Teacher extends Person implements ITeacher { } } - static fromJS(data: any): Teacher { + static override fromJS(data: any): Teacher { data = typeof data === 'object' ? data : {}; let result = new Teacher(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -138,7 +138,7 @@ export interface ITeacher extends IPerson { } export class Anonymous implements IAnonymous { - foo: Teacher; + foo!: Teacher; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=OpenApi3.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=OpenApi3.verified.txt index 00fadf84d..e601036e9 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=OpenApi3.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=OpenApi3.verified.txt @@ -10,7 +10,7 @@ export class Person implements IPerson { - skills: { [key: string]: SkillLevel; }; + skills!: { [key: string]: SkillLevel; }; [key: string]: any; @@ -36,7 +36,7 @@ export class Person implements IPerson { this.skills = {} as any; for (let key in _data["Skills"]) { if (_data["Skills"].hasOwnProperty(key)) - (this.skills as any)[key] = _data["Skills"][key]; + (this.skills as any)![key] = _data["Skills"][key]; } } } @@ -85,8 +85,8 @@ export enum SkillLevel { } export class Teacher extends Person implements ITeacher { - course: string; - skillLevel: SkillLevel; + course!: string; + skillLevel!: SkillLevel; [key: string]: any; @@ -98,7 +98,7 @@ export class Teacher extends Person implements ITeacher { this._discriminator = "Teacher"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -110,14 +110,14 @@ export class Teacher extends Person implements ITeacher { } } - static fromJS(data: any): Teacher { + static override fromJS(data: any): Teacher { data = typeof data === 'object' ? data : {}; let result = new Teacher(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -138,7 +138,7 @@ export interface ITeacher extends IPerson { } export class Anonymous implements IAnonymous { - foo: Teacher; + foo!: Teacher; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=Swagger2.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=Swagger2.verified.txt index 7228d706c..4e0862527 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=Swagger2.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_and_references_is_generated_then_there_are_no_duplicates_schemaType=Swagger2.verified.txt @@ -10,7 +10,7 @@ export class Person implements IPerson { - skills: { [key: string]: SkillLevel; } | undefined; + skills!: { [key: string]: SkillLevel; } | undefined; protected _discriminator: string; @@ -30,7 +30,7 @@ export class Person implements IPerson { this.skills = {} as any; for (let key in _data["Skills"]) { if (_data["Skills"].hasOwnProperty(key)) - (this.skills as any)[key] = _data["Skills"][key]; + (this.skills as any)![key] = _data["Skills"][key]; } } } @@ -73,8 +73,8 @@ export enum SkillLevel { } export class Teacher extends Person implements ITeacher { - course: string | undefined; - skillLevel: SkillLevel; + course!: string | undefined; + skillLevel!: SkillLevel; constructor(data?: ITeacher) { super(data); @@ -84,7 +84,7 @@ export class Teacher extends Person implements ITeacher { this._discriminator = "Teacher"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.course = _data["Course"]; @@ -92,14 +92,14 @@ export class Teacher extends Person implements ITeacher { } } - static fromJS(data: any): Teacher { + static override fromJS(data: any): Teacher { data = typeof data === 'object' ? data : {}; let result = new Teacher(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Course"] = this.course; data["SkillLevel"] = this.skillLevel; @@ -114,7 +114,7 @@ export interface ITeacher extends IPerson { } export class Anonymous implements IAnonymous { - foo: Teacher | undefined; + foo!: Teacher | undefined; constructor(data?: IAnonymous) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=JsonSchema.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=JsonSchema.verified.txt index ff48cb3c4..55878164b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=JsonSchema.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=JsonSchema.verified.txt @@ -10,7 +10,7 @@ export class GenericRequestBaseOfRequestBodyBase implements IGenericRequestBaseOfRequestBodyBase { - request: RequestBodyBase; + request!: RequestBodyBase; [key: string]: any; @@ -68,7 +68,7 @@ export class GenericRequest1 extends GenericRequestBaseOfRequestBodyBase impleme super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -78,14 +78,14 @@ export class GenericRequest1 extends GenericRequestBaseOfRequestBodyBase impleme } } - static fromJS(data: any): GenericRequest1 { + static override fromJS(data: any): GenericRequest1 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest1(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -146,7 +146,7 @@ export interface IRequestBodyBase { } export class GenericRequestBaseOfRequestBody implements IGenericRequestBaseOfRequestBody { - request: RequestBody; + request!: RequestBody; [key: string]: any; @@ -204,7 +204,7 @@ export class GenericRequest2 extends GenericRequestBaseOfRequestBody implements super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -214,14 +214,14 @@ export class GenericRequest2 extends GenericRequestBaseOfRequestBody implements } } - static fromJS(data: any): GenericRequest2 { + static override fromJS(data: any): GenericRequest2 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest2(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -245,7 +245,7 @@ export class RequestBody extends RequestBodyBase implements IRequestBody { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -255,14 +255,14 @@ export class RequestBody extends RequestBodyBase implements IRequestBody { } } - static fromJS(data: any): RequestBody { + static override fromJS(data: any): RequestBody { data = typeof data === 'object' ? data : {}; let result = new RequestBody(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -279,8 +279,8 @@ export interface IRequestBody extends IRequestBodyBase { } export class Anonymous implements IAnonymous { - request1: GenericRequest1; - request2: GenericRequest2; + request1!: GenericRequest1; + request2!: GenericRequest2; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=OpenApi3.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=OpenApi3.verified.txt index ff48cb3c4..55878164b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=OpenApi3.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=OpenApi3.verified.txt @@ -10,7 +10,7 @@ export class GenericRequestBaseOfRequestBodyBase implements IGenericRequestBaseOfRequestBodyBase { - request: RequestBodyBase; + request!: RequestBodyBase; [key: string]: any; @@ -68,7 +68,7 @@ export class GenericRequest1 extends GenericRequestBaseOfRequestBodyBase impleme super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -78,14 +78,14 @@ export class GenericRequest1 extends GenericRequestBaseOfRequestBodyBase impleme } } - static fromJS(data: any): GenericRequest1 { + static override fromJS(data: any): GenericRequest1 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest1(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -146,7 +146,7 @@ export interface IRequestBodyBase { } export class GenericRequestBaseOfRequestBody implements IGenericRequestBaseOfRequestBody { - request: RequestBody; + request!: RequestBody; [key: string]: any; @@ -204,7 +204,7 @@ export class GenericRequest2 extends GenericRequestBaseOfRequestBody implements super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -214,14 +214,14 @@ export class GenericRequest2 extends GenericRequestBaseOfRequestBody implements } } - static fromJS(data: any): GenericRequest2 { + static override fromJS(data: any): GenericRequest2 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest2(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -245,7 +245,7 @@ export class RequestBody extends RequestBodyBase implements IRequestBody { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -255,14 +255,14 @@ export class RequestBody extends RequestBodyBase implements IRequestBody { } } - static fromJS(data: any): RequestBody { + static override fromJS(data: any): RequestBody { data = typeof data === 'object' ? data : {}; let result = new RequestBody(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) @@ -279,8 +279,8 @@ export interface IRequestBody extends IRequestBodyBase { } export class Anonymous implements IAnonymous { - request1: GenericRequest1; - request2: GenericRequest2; + request1!: GenericRequest1; + request2!: GenericRequest2; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=Swagger2.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=Swagger2.verified.txt index d6244880b..b804ef82b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=Swagger2.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/InheritanceTests.When_schema_with_inheritance_to_object_type_is_generated_then_the_object_type_is_generated_schemaType=Swagger2.verified.txt @@ -10,7 +10,7 @@ export class GenericRequestBaseOfRequestBodyBase implements IGenericRequestBaseOfRequestBodyBase { - request: RequestBodyBase; + request!: RequestBodyBase; constructor(data?: IGenericRequestBaseOfRequestBodyBase) { if (data) { @@ -54,18 +54,18 @@ export class GenericRequest1 extends GenericRequestBaseOfRequestBodyBase impleme super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); } - static fromJS(data: any): GenericRequest1 { + static override fromJS(data: any): GenericRequest1 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest1(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; super.toJSON(data); return data; @@ -106,7 +106,7 @@ export interface IRequestBodyBase { } export class GenericRequestBaseOfRequestBody implements IGenericRequestBaseOfRequestBody { - request: RequestBody; + request!: RequestBody; constructor(data?: IGenericRequestBaseOfRequestBody) { if (data) { @@ -150,18 +150,18 @@ export class GenericRequest2 extends GenericRequestBaseOfRequestBody implements super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); } - static fromJS(data: any): GenericRequest2 { + static override fromJS(data: any): GenericRequest2 { data = typeof data === 'object' ? data : {}; let result = new GenericRequest2(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; super.toJSON(data); return data; @@ -177,18 +177,18 @@ export class RequestBody extends RequestBodyBase implements IRequestBody { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); } - static fromJS(data: any): RequestBody { + static override fromJS(data: any): RequestBody { data = typeof data === 'object' ? data : {}; let result = new RequestBody(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; super.toJSON(data); return data; @@ -199,8 +199,8 @@ export interface IRequestBody extends IRequestBodyBase { } export class Anonymous implements IAnonymous { - request1: GenericRequest1 | undefined; - request2: GenericRequest2 | undefined; + request1!: GenericRequest1 | undefined; + request2!: GenericRequest2 | undefined; constructor(data?: IAnonymous) { if (data) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.Strict_nullability_in_TypeScript2.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.Strict_nullability_in_TypeScript2.verified.txt index 29d118452..96378f2c2 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.Strict_nullability_in_TypeScript2.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.Strict_nullability_in_TypeScript2.verified.txt @@ -15,8 +15,8 @@ export enum Gender { } export class Address implements IAddress { - street: string; - city: string; + street!: string; + city!: string; constructor(data?: IAddress) { if (data) { @@ -55,17 +55,17 @@ export interface IAddress { } export class MyClass implements IMyClass { - firstName: string; - lastName: string; - readonly birthday: Date; - timeSpan: string; - timeSpanOrNull: string | undefined; - gender: Gender; - genderOrNull: Gender | undefined; - address: Address; - addressOrNull: Address | undefined; - array: string[]; - dictionary: { [key: string]: number; }; + firstName!: string; + lastName!: string; + readonly birthday!: Date; + timeSpan!: string; + timeSpanOrNull!: string | undefined; + gender!: Gender; + genderOrNull!: Gender | undefined; + address!: Address; + addressOrNull!: Address | undefined; + array!: string[]; + dictionary!: { [key: string]: number; }; constructor(data?: IMyClass) { if (data) { @@ -93,13 +93,13 @@ export class MyClass implements IMyClass { if (Array.isArray(_data["Array"])) { this.array = [] as any; for (let item of _data["Array"]) - this.array.push(item); + this.array!.push(item); } if (_data["Dictionary"]) { this.dictionary = {} as any; for (let key in _data["Dictionary"]) { if (_data["Dictionary"].hasOwnProperty(key)) - (this.dictionary as any)[key] = _data["Dictionary"][key]; + (this.dictionary as any)![key] = _data["Dictionary"][key]; } } } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_not_required_and_not_nullable_then_default_is_undefined.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_not_required_and_not_nullable_then_default_is_undefined.verified.txt index bfaba101e..06b66e584 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_not_required_and_not_nullable_then_default_is_undefined.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_not_required_and_not_nullable_then_default_is_undefined.verified.txt @@ -10,7 +10,7 @@ export class ParentDto implements IParentDto { - child: ChildDto; + child!: ChildDto; [key: string]: any; @@ -58,7 +58,7 @@ export interface IParentDto { } export class ChildDto implements IChildDto { - property: string; + property!: string; [key: string]: any; @@ -106,7 +106,7 @@ export interface IChildDto { } export class MyClass implements IMyClass { - parent: ParentDto; + parent!: ParentDto; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_nullable_then_default_is_null.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_nullable_then_default_is_null.verified.txt index 5d6b96aa4..c96a3f662 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_nullable_then_default_is_null.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_nullable_then_default_is_null.verified.txt @@ -10,7 +10,7 @@ export class ParentDto implements IParentDto { - child: ChildDto | undefined; + child!: ChildDto | undefined; [key: string]: any; @@ -58,7 +58,7 @@ export interface IParentDto { } export class ChildDto implements IChildDto { - property: string; + property!: string; [key: string]: any; @@ -106,7 +106,7 @@ export interface IChildDto { } export class MyClass implements IMyClass { - parent: ParentDto; + parent!: ParentDto; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_required_and_not_nullable_then_default_is_new_instance.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_required_and_not_nullable_then_default_is_new_instance.verified.txt index b613f5983..2b05969ee 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_required_and_not_nullable_then_default_is_new_instance.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/NullabilityTests.When_a_complex_property_is_required_and_not_nullable_then_default_is_new_instance.verified.txt @@ -10,7 +10,7 @@ export class ParentDto implements IParentDto { - child: ChildDto; + child!: ChildDto; [key: string]: any; @@ -61,7 +61,7 @@ export interface IParentDto { } export class ChildDto implements IChildDto { - property: string; + property!: string; [key: string]: any; @@ -109,7 +109,7 @@ export interface IChildDto { } export class MyClass implements IMyClass { - parent: ParentDto; + parent!: ParentDto; [key: string]: any; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_key_is_enum_then_typescript_has_string_key.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_key_is_enum_then_typescript_has_string_key.verified.txt index aace209e9..b21670ec7 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_key_is_enum_then_typescript_has_string_key.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_key_is_enum_then_typescript_has_string_key.verified.txt @@ -15,6 +15,6 @@ export enum PropertyName { } export interface MyClass { - Mapping: { [key: string]: string; }; - Mapping2: { [key: string]: string; }; + Mapping: { [key in keyof typeof PropertyName]?: string; } | undefined; + Mapping2: { [key in keyof typeof PropertyName]?: string; } | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_value_is_enum_then_typescript_has_enum_value.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_value_is_enum_then_typescript_has_enum_value.verified.txt index 2aaac034c..203088e30 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_value_is_enum_then_typescript_has_enum_value.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDictionaryTests.When_dictionary_value_is_enum_then_typescript_has_enum_value.verified.txt @@ -15,6 +15,6 @@ export enum Gender { } export interface MyClass { - Mapping: { [key: string]: Gender; }; - Mapping2: { [key: string]: Gender; }; + Mapping: { [key: string]: Gender; } | undefined; + Mapping2: { [key: string]: Gender; } | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator.verified.txt index b9362d308..dfced0b4c 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator.verified.txt @@ -19,16 +19,16 @@ export enum EBase { } export interface OneChild extends Base { - A: string; + A: string | undefined; Type: EBase.OneChild; } export interface SecondChild extends Base { - B: string; + B: string | undefined; Type: EBase.SecondChild; } export interface MyClass { - Child: Base; - Children: Base[]; + Child: Base | undefined; + Children: Base[] | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator_string_literal.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator_string_literal.verified.txt index a05edf0c6..89f3f4957 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator_string_literal.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_generating_interface_contract_add_discriminator_string_literal.verified.txt @@ -16,16 +16,16 @@ export interface Base { export type EBase = "OneChild" | "SecondChild"; export interface OneChild extends Base { - A: string; + A: string | undefined; Type: 'OneChild'; } export interface SecondChild extends Base { - B: string; + B: string | undefined; Type: 'SecondChild'; } export interface MyClass { - Child: Base; - Children: Base[]; + Child: Base | undefined; + Children: Base[] | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_class.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_class.verified.txt index 71e973c7e..6b29e3de6 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_class.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_class.verified.txt @@ -52,15 +52,15 @@ export interface IBase { } export class OneChild extends Base implements IOneChild { - a: string; - type: EBase; + a!: string | undefined; + type!: EBase; constructor(data?: IOneChild) { super(data); this._discriminator = "OneChild"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.a = _data["A"]; @@ -68,14 +68,14 @@ export class OneChild extends Base implements IOneChild { } } - static fromJS(data: any): OneChild { + static override fromJS(data: any): OneChild { data = typeof data === 'object' ? data : {}; let result = new OneChild(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["A"] = this.a; data["Type"] = this.type; @@ -85,7 +85,7 @@ export class OneChild extends Base implements IOneChild { } export interface IOneChild extends IBase { - a: string; + a: string | undefined; type: EBase; } @@ -95,15 +95,15 @@ export enum EBase { } export class SecondChild extends Base implements ISecondChild { - b: string; - type: EBase; + b!: string | undefined; + type!: EBase; constructor(data?: ISecondChild) { super(data); this._discriminator = "SecondChild"; } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.b = _data["B"]; @@ -111,14 +111,14 @@ export class SecondChild extends Base implements ISecondChild { } } - static fromJS(data: any): SecondChild { + static override fromJS(data: any): SecondChild { data = typeof data === 'object' ? data : {}; let result = new SecondChild(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["B"] = this.b; data["Type"] = this.type; @@ -128,13 +128,13 @@ export class SecondChild extends Base implements ISecondChild { } export interface ISecondChild extends IBase { - b: string; + b: string | undefined; type: EBase; } export class MyClass implements IMyClass { - child: OneChild | SecondChild; - children: (OneChild | SecondChild)[]; + child!: OneChild | SecondChild | undefined; + children!: (OneChild | SecondChild)[] | undefined; constructor(data?: IMyClass) { if (data) { @@ -151,7 +151,7 @@ export class MyClass implements IMyClass { if (Array.isArray(_data["Children"])) { this.children = [] as any; for (let item of _data["Children"]) - this.children.push(OneChild | SecondChild.fromJS(item)); + this.children!.push(OneChild | SecondChild.fromJS(item)); } } } @@ -176,6 +176,6 @@ export class MyClass implements IMyClass { } export interface IMyClass { - child: OneChild | SecondChild; - children: (OneChild | SecondChild)[]; + child: OneChild | SecondChild | undefined; + children: (OneChild | SecondChild)[] | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_interface.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_interface.verified.txt index 50fdde97f..e320337a7 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_interface.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptDiscriminatorTests.When_parameter_is_abstract_then_generate_union_interface.verified.txt @@ -14,7 +14,7 @@ export interface Base { } export interface OneChild extends Base { - A: string; + A: string | undefined; Type: EBase.OneChild; } @@ -24,11 +24,11 @@ export enum EBase { } export interface SecondChild extends Base { - B: string; + B: string | undefined; Type: EBase.SecondChild; } export interface MyClass { - Child: OneChild | SecondChild; - Children: (OneChild | SecondChild)[]; + Child: OneChild | SecondChild | undefined; + Children: (OneChild | SecondChild)[] | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_contains_one_schema_then_csharp_inheritance_is_generated.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_contains_one_schema_then_csharp_inheritance_is_generated.verified.txt index 80e4d2641..2f8350db7 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_contains_one_schema_then_csharp_inheritance_is_generated.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_contains_one_schema_then_csharp_inheritance_is_generated.verified.txt @@ -11,16 +11,16 @@ export interface Person { FirstName: string; - lastName: string; - Birthday: Date; + lastName: string | undefined; + readonly Birthday: Date; TimeSpan: string; - TimeSpanOrNull: string; + TimeSpanOrNull: string | undefined; Gender: Gender; - GenderOrNull: Gender; + GenderOrNull: Gender | undefined; address: Address; - AddressOrNull: Address; - Array: string[]; - Dictionary: { [key: string]: number; }; + AddressOrNull: Address | undefined; + Array: string[] | undefined; + Dictionary: { [key: string]: number; } | undefined; } export enum Gender { @@ -29,10 +29,10 @@ export enum Gender { } export interface Address { - Street: string; - City: string; + Street: string | undefined; + City: string | undefined; } export interface Teacher extends Person { - Class: string; + Class: string | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_schema_is_object_type_then_it_is_an_inherited_class_in_generated_code.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_schema_is_object_type_then_it_is_an_inherited_class_in_generated_code.verified.txt index 2687fa77b..92a09809f 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_schema_is_object_type_then_it_is_an_inherited_class_in_generated_code.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_allOf_schema_is_object_type_then_it_is_an_inherited_class_in_generated_code.verified.txt @@ -66,7 +66,7 @@ export class Foo extends Bar implements IFoo { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -77,14 +77,14 @@ export class Foo extends Bar implements IFoo { } } - static fromJS(data: any): Foo { + static override fromJS(data: any): Foo { data = typeof data === 'object' ? data : {}; let result = new Foo(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_class_has_description_then_typescript_has_comment.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_class_has_description_then_typescript_has_comment.verified.txt index 4e5521d38..93db4a2d0 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_class_has_description_then_typescript_has_comment.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_class_has_description_then_typescript_has_comment.verified.txt @@ -161,21 +161,21 @@ export class MyClass extends Person implements IMyClass { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.class = _data["Class"]; } } - static fromJS(data: any): MyClass { + static override fromJS(data: any): MyClass { data = typeof data === 'object' ? data : {}; let result = new MyClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Class"] = this.class; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_enum_has_description_then_typescript_has_comment.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_enum_has_description_then_typescript_has_comment.verified.txt index 91b89fde9..a887da79d 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_enum_has_description_then_typescript_has_comment.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_enum_has_description_then_typescript_has_comment.verified.txt @@ -162,21 +162,21 @@ export class MyClass extends Person implements IMyClass { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.class = _data["Class"]; } } - static fromJS(data: any): MyClass { + static override fromJS(data: any): MyClass { data = typeof data === 'object' ? data : {}; let result = new MyClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Class"] = this.class; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_more_properties_are_defined_in_allOf_and_type_none_then_all_of_contains_all_properties_in_generated_code.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_more_properties_are_defined_in_allOf_and_type_none_then_all_of_contains_all_properties_in_generated_code.verified.txt index efb5a90d3..e9f3dd7d4 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_more_properties_are_defined_in_allOf_and_type_none_then_all_of_contains_all_properties_in_generated_code.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_more_properties_are_defined_in_allOf_and_type_none_then_all_of_contains_all_properties_in_generated_code.verified.txt @@ -10,7 +10,7 @@ export class Anonymous implements IAnonymous { - baseProperty: string; + baseProperty!: string; [key: string]: any; @@ -58,8 +58,8 @@ export interface IAnonymous { } export class Foo extends Anonymous implements IFoo { - prop1: string; - prop2: string; + prop1!: string; + prop2!: string; [key: string]: any; @@ -67,7 +67,7 @@ export class Foo extends Anonymous implements IFoo { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { for (var property in _data) { @@ -79,14 +79,14 @@ export class Foo extends Anonymous implements IFoo { } } - static fromJS(data: any): Foo { + static override fromJS(data: any): Foo { data = typeof data === 'object' ? data : {}; let result = new Foo(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; for (var property in this) { if (this.hasOwnProperty(property)) diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_has_description_then_csharp_has_xml_comment.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_has_description_then_csharp_has_xml_comment.verified.txt index f3c169640..4f907e1be 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_has_description_then_csharp_has_xml_comment.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_has_description_then_csharp_has_xml_comment.verified.txt @@ -161,21 +161,21 @@ export class MyClass extends Person implements IMyClass { super(data); } - init(_data?: any) { + override init(_data?: any) { super.init(_data); if (_data) { this.class = _data["Class"]; } } - static fromJS(data: any): MyClass { + static override fromJS(data: any): MyClass { data = typeof data === 'object' ? data : {}; let result = new MyClass(); result.init(data); return result; } - toJSON(data?: any) { + override toJSON(data?: any) { data = typeof data === 'object' ? data : {}; data["Class"] = this.class; super.toJSON(data); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_is_required_name_then_TypeScript_property_is_not_optional.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_is_required_name_then_TypeScript_property_is_not_optional.verified.txt index 80e4d2641..2f8350db7 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_is_required_name_then_TypeScript_property_is_not_optional.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_is_required_name_then_TypeScript_property_is_not_optional.verified.txt @@ -11,16 +11,16 @@ export interface Person { FirstName: string; - lastName: string; - Birthday: Date; + lastName: string | undefined; + readonly Birthday: Date; TimeSpan: string; - TimeSpanOrNull: string; + TimeSpanOrNull: string | undefined; Gender: Gender; - GenderOrNull: Gender; + GenderOrNull: Gender | undefined; address: Address; - AddressOrNull: Address; - Array: string[]; - Dictionary: { [key: string]: number; }; + AddressOrNull: Address | undefined; + Array: string[] | undefined; + Dictionary: { [key: string]: number; } | undefined; } export enum Gender { @@ -29,10 +29,10 @@ export enum Gender { } export interface Address { - Street: string; - City: string; + Street: string | undefined; + City: string | undefined; } export interface Teacher extends Person { - Class: string; + Class: string | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_name_does_not_match_property_name_then_casing_is_correct_in_output.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_name_does_not_match_property_name_then_casing_is_correct_in_output.verified.txt index 80e4d2641..2f8350db7 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_name_does_not_match_property_name_then_casing_is_correct_in_output.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptGeneratorTests.When_property_name_does_not_match_property_name_then_casing_is_correct_in_output.verified.txt @@ -11,16 +11,16 @@ export interface Person { FirstName: string; - lastName: string; - Birthday: Date; + lastName: string | undefined; + readonly Birthday: Date; TimeSpan: string; - TimeSpanOrNull: string; + TimeSpanOrNull: string | undefined; Gender: Gender; - GenderOrNull: Gender; + GenderOrNull: Gender | undefined; address: Address; - AddressOrNull: Address; - Array: string[]; - Dictionary: { [key: string]: number; }; + AddressOrNull: Address | undefined; + Array: string[] | undefined; + Dictionary: { [key: string]: number; } | undefined; } export enum Gender { @@ -29,10 +29,10 @@ export enum Gender { } export interface Address { - Street: string; - City: string; + Street: string | undefined; + City: string | undefined; } export interface Teacher extends Person { - Class: string; + Class: string | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_dictionary_value_is_object_then_typescript_uses_any.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_dictionary_value_is_object_then_typescript_uses_any.verified.txt index fef11eb7b..8efa74f86 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_dictionary_value_is_object_then_typescript_uses_any.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_dictionary_value_is_object_then_typescript_uses_any.verified.txt @@ -10,5 +10,5 @@ export interface MyClass { - Test: { [key: string]: any; }; + Test: { [key: string]: any; } | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_property_is_object_then_jsonProperty_has_no_reference_and_is_any.verified.txt b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_property_is_object_then_jsonProperty_has_no_reference_and_is_any.verified.txt index 9def882ef..a93226b0b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_property_is_object_then_jsonProperty_has_no_reference_and_is_any.verified.txt +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/Snapshots/TypeScriptObjectTests.When_property_is_object_then_jsonProperty_has_no_reference_and_is_any.verified.txt @@ -10,5 +10,5 @@ export interface MyClass { - Test: any; + Test: any | undefined; } \ No newline at end of file diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDictionaryTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDictionaryTests.cs index c98b5f6fa..9bc322a49 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDictionaryTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDictionaryTests.cs @@ -30,8 +30,7 @@ public async Task When_dictionary_key_is_enum_then_typescript_has_string_key() // Act var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); @@ -48,7 +47,7 @@ public async Task When_dictionary_key_is_enum_then_typescript_has_enum_key_ts_2_ var data = schema.ToJson(); // Act - var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, TypeScriptVersion = 2.1m }); + var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); // Assert @@ -68,8 +67,7 @@ public async Task When_dictionary_key_is_string_literal_then_typescript_has_stri { TypeStyle = TypeScriptTypeStyle.Interface, EnumNameGenerator = new DefaultEnumNameGenerator(), - EnumStyle = TypeScriptEnumStyle.StringLiteral, - TypeScriptVersion = 2.1m, + EnumStyle = TypeScriptEnumStyle.StringLiteral }); var code = generator.GenerateFile("MyClass"); @@ -102,8 +100,7 @@ public async Task When_dictionary_value_is_enum_then_typescript_has_enum_value() // Act var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); @@ -154,7 +151,6 @@ public async Task When_dictionary_value_is_object_then_typescript_has_any_value( var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Class, - TypeScriptVersion = 2.7m, ConvertConstructorInterfaceData = true, GenerateConstructorInterface = true }); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDiscriminatorTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDiscriminatorTests.cs index d6fd18c11..7a3422578 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDiscriminatorTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptDiscriminatorTests.cs @@ -59,8 +59,7 @@ public async Task When_generating_interface_contract_add_discriminator() // Act var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m, + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); @@ -83,7 +82,6 @@ public async Task When_generating_interface_contract_add_discriminator_string_li var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m, EnumStyle = TypeScriptEnumStyle.StringLiteral, }); var code = generator.GenerateFile("MyClass"); @@ -104,8 +102,7 @@ public async Task When_parameter_is_abstract_then_generate_union_interface() var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { UseLeafType = true, - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); @@ -125,8 +122,7 @@ public async Task When_parameter_is_abstract_then_generate_union_class() var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { UseLeafType = true, - TypeStyle = TypeScriptTypeStyle.Class, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Class }); var code = generator.GenerateFile("MyClass"); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptGeneratorTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptGeneratorTests.cs index 7ef7b1524..6ac13cff2 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptGeneratorTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptGeneratorTests.cs @@ -35,8 +35,7 @@ public async Task When_more_properties_are_defined_in_allOf_and_type_none_then_a var schema = await JsonSchema.FromJsonAsync(json); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Class, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Class }); var code = generator.GenerateFile("Foo").Replace("\r\n", "\n"); @@ -163,8 +162,7 @@ public async Task When_enum_has_default_and_using_enumstyle_stringliteral_it_def var schema = await JsonSchema.FromJsonAsync(jsonSchema); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - EnumStyle = TypeScriptEnumStyle.StringLiteral, - TypeScriptVersion = 5m, + EnumStyle = TypeScriptEnumStyle.StringLiteral }); // Act @@ -216,8 +214,7 @@ public async Task When_property_is_readonly_then_ts_property_is_also_readonly() var schema = NewtonsoftJsonSchemaGenerator.FromType(); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 2.0m + TypeStyle = TypeScriptTypeStyle.Interface }); // Act @@ -270,8 +267,7 @@ private static Task CreateGeneratorAsync() var schemaData = schema.ToJson(); var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); return Task.FromResult(generator); } @@ -423,7 +419,6 @@ public async Task When_a_nullable_array_property_exists_and_typestyle_is_null_th var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { NullValue = TypeScriptNullValue.Null, - TypeScriptVersion = 4, MarkOptionalProperties = false, }); var code = generator.GenerateFile("Foo").Replace("\r\n", "\n"); @@ -459,7 +454,6 @@ public async Task When_a_nullable_dict_property_exists_and_typestyle_is_null_the var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { NullValue = TypeScriptNullValue.Null, - TypeScriptVersion = 4, MarkOptionalProperties = false, }); var code = generator.GenerateFile("Foo").Replace("\r\n", "\n"); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptObjectTests.cs b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptObjectTests.cs index a4c5ec22e..be081a29d 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptObjectTests.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript.Tests/TypeScriptObjectTests.cs @@ -20,8 +20,7 @@ public async Task When_property_is_object_then_jsonProperty_has_no_reference_and // Act var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); @@ -45,8 +44,7 @@ public async Task When_dictionary_value_is_object_then_typescript_uses_any() // Act var generator = new TypeScriptGenerator(schema, new TypeScriptGeneratorSettings { - TypeStyle = TypeScriptTypeStyle.Interface, - TypeScriptVersion = 1.8m + TypeStyle = TypeScriptTypeStyle.Interface }); var code = generator.GenerateFile("MyClass"); diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/DataConversionGenerator.cs b/src/NJsonSchema.CodeGeneration.TypeScript/DataConversionGenerator.cs index 9d5eb3db1..224bc222f 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/DataConversionGenerator.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript/DataConversionGenerator.cs @@ -92,8 +92,6 @@ private static object CreateModel(DataConversionParameters parameters) IsArrayItemDate = IsDate(typeSchema.Item?.Format, parameters.Settings.DateTimeType), IsArrayItemDateTime = IsDateTime(typeSchema.Item?.Format, parameters.Settings.DateTimeType), - RequiresStrictPropertyInitialization = parameters.Settings.TypeScriptVersion >= 2.7m, - // Dates //StringToDateCode is used for date and date-time formats UseJsDate = parameters.Settings.DateTimeType == TypeScriptDateTimeType.Date, diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/Models/ClassTemplateModel.cs b/src/NJsonSchema.CodeGeneration.TypeScript/Models/ClassTemplateModel.cs index c542dd2b8..3f6bf16e1 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/Models/ClassTemplateModel.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript/Models/ClassTemplateModel.cs @@ -140,12 +140,6 @@ public string IndexerPropertyValueType /// Gets a value indicating whether any property has a default value. public bool HasDefaultValues => Properties.Exists(p => p.HasDefaultValue); - /// Gets a value indicating whether - public bool RequiresStrictPropertyInitialization => _settings.RequiresStrictPropertyInitialization; - - /// Gets a value indicating whether - public bool SupportsOverrideKeyword => _settings.SupportsOverrideKeyword; - /// Gets a value indicating whether the export keyword should be added to all classes. public bool ExportTypes => _settings.ExportTypes; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/Models/PropertyModel.cs b/src/NJsonSchema.CodeGeneration.TypeScript/Models/PropertyModel.cs index 22c6dddd1..04ad32dbc 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/Models/PropertyModel.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript/Models/PropertyModel.cs @@ -129,7 +129,7 @@ public string TypePostfix { get { - if (IsNullable && _settings.SupportsStrictNullChecks) + if (IsNullable) { return " | " + _settings.NullValue.ToString().ToLowerInvariant(); } @@ -141,7 +141,7 @@ public string TypePostfix } /// Gets a value indicating whether the property is read only. - public bool IsReadOnly => _property.IsReadOnly && _settings.TypeScriptVersion >= 2.0m; + public bool IsReadOnly => _property.IsReadOnly; /// Gets a value indicating whether the property is optional. public bool IsOptional => !_property.IsRequired && _settings.MarkOptionalProperties; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/Class.liquid b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/Class.liquid index 41dd24c60..039a16808 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/Class.liquid +++ b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/Class.liquid @@ -6,7 +6,7 @@ {% if property.HasDescription -%} /** {{ property.Description }} */ {% endif -%} - {% if property.IsReadOnly %}readonly {% endif %}{{ property.PropertyName }}{% if property.IsOptional %}?{% elsif RequiresStrictPropertyInitialization %}!{% endif %}: {{ property.Type }}{{ property.TypePostfix }}; + {% if property.IsReadOnly %}readonly {% endif %}{{ property.PropertyName }}{% if property.IsOptional %}?{% else %}!{% endif %}: {{ property.Type }}{{ property.TypePostfix }}; {% endfor -%} {% if HasIndexerProperty -%} @@ -75,7 +75,7 @@ } {% endif -%} - {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}init(_data?: any{% if HandleReferences %}, _mappings?: any{% endif %}) { + {% if HasInheritance %}override {% endif %}init(_data?: any{% if HandleReferences %}, _mappings?: any{% endif %}) { {% if HasInheritance -%} super.init(_data); {% endif -%} @@ -94,7 +94,7 @@ {% endif -%} } - static {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}fromJS(data: any{% if HandleReferences %}, _mappings?: any{% endif %}): {{ ClassName }}{% if HandleReferences %} | null{% endif %} { + static {% if HasInheritance %}override {% endif %}fromJS(data: any{% if HandleReferences %}, _mappings?: any{% endif %}): {{ ClassName }}{% if HandleReferences %} | null{% endif %} { data = typeof data === 'object' ? data : {}; {% if HandleReferences -%} {% if HasBaseDiscriminator -%} @@ -136,7 +136,7 @@ {% endif -%} } - {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}toJSON(data?: any) { + {% if HasInheritance %}override {% endif %}toJSON(data?: any) { data = typeof data === 'object' ? data : {}; {% if HasIndexerProperty -%} for (var property in this) { diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/ConvertToClass.liquid b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/ConvertToClass.liquid index d003cd0ad..12eb78668 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/ConvertToClass.liquid +++ b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/ConvertToClass.liquid @@ -9,14 +9,14 @@ if (Array.isArray({{ Value }})) { {{ Variable }} = [] as any; for (let item of {{ Value }}) {% if IsArrayItemNewableObject -%} - {{ Variable }}{% if RequiresStrictPropertyInitialization %}!{% endif %}.push({{ ArrayItemType }}.fromJS(item{% if HandleReferences %}, _mappings{% endif %})); + {{ Variable }}!.push({{ ArrayItemType }}.fromJS(item{% if HandleReferences %}, _mappings{% endif %})); {% else -%} {% if IsArrayItemDate -%} - {{ Variable }}{% if RequiresStrictPropertyInitialization %}!{% endif %}.push({{ StringToDateOnlyCode }}(item)); + {{ Variable }}!.push({{ StringToDateOnlyCode }}(item)); {% elsif IsArrayItemDateTime -%} - {{ Variable }}{% if RequiresStrictPropertyInitialization %}!{% endif %}.push({{ StringToDateCode }}(item)); + {{ Variable }}!.push({{ StringToDateCode }}(item)); {% else -%} - {{ Variable }}{% if RequiresStrictPropertyInitialization %}!{% endif %}.push(item); + {{ Variable }}!.push(item); {% endif -%} {% endif -%} } @@ -30,18 +30,18 @@ if ({{ Value }}) { for (let key in {{ Value }}) { if ({{ Value }}.hasOwnProperty(key)) {% if IsDictionaryValueNewableObject -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key] ? {{ DictionaryValueType }}.fromJS({{ Value }}[key]{% if HandleReferences %}, _mappings{% endif %}) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; + ({{ Variable }} as any)![key] = {{ Value }}[key] ? {{ DictionaryValueType }}.fromJS({{ Value }}[key]{% if HandleReferences %}, _mappings{% endif %}) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; {% elsif IsDictionaryValueNewableArray -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key] ? {{ Value }}[key].map((i: any) => {{ DictionaryValueArrayItemType }}.fromJS(i{% if HandleReferences %}, _mappings{% endif %})) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; + ({{ Variable }} as any)![key] = {{ Value }}[key] ? {{ Value }}[key].map((i: any) => {{ DictionaryValueArrayItemType }}.fromJS(i{% if HandleReferences %}, _mappings{% endif %})) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; {% elsif IsDictionaryValueDate -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key] ? {{ StringToDateOnlyCode }}({{ Value }}[key].toString()) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; + ({{ Variable }} as any)![key] = {{ Value }}[key] ? {{ StringToDateOnlyCode }}({{ Value }}[key].toString()) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; {% elsif IsDictionaryValueDateTime -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key] ? {{ StringToDateCode }}({{ Value }}[key].toString()) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; + ({{ Variable }} as any)![key] = {{ Value }}[key] ? {{ StringToDateCode }}({{ Value }}[key].toString()) : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; {% else -%} {% if HasDictionaryValueDefaultValue or NullValue != "undefined" -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key] !== undefined ? {{ Value }}[key] : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; + ({{ Variable }} as any)![key] = {{ Value }}[key] !== undefined ? {{ Value }}[key] : {% if HasDictionaryValueDefaultValue %}{{ DictionaryValueDefaultValue }}{% else %}{{ NullValue }} as any{% endif %}; {% else -%} - ({{ Variable }} as any){% if RequiresStrictPropertyInitialization %}!{% endif %}[key] = {{ Value }}[key]; + ({{ Variable }} as any)![key] = {{ Value }}[key]; {% endif -%} {% endif -%} } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/KnockoutClass.liquid b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/KnockoutClass.liquid index f15cb5eb3..f2832aa68 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/Templates/KnockoutClass.liquid +++ b/src/NJsonSchema.CodeGeneration.TypeScript/Templates/KnockoutClass.liquid @@ -23,7 +23,7 @@ } {%- endif -%} - {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}init(data?: any{% if HandleReferences %}, _mappings?: any{% endif %}) { + {% if HasInheritance %}override {% endif %}init(data?: any{% if HandleReferences %}, _mappings?: any{% endif %}) { {%- if HasInheritance -%} super.init(data); {%- endif -%} @@ -37,7 +37,7 @@ } } - static {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}fromJS(data: any{% if HandleReferences %}, _mappings?: any{% endif %}): {{ ClassName }}{% if HandleReferences %} | null{% endif %} { + static {% if HasInheritance %}override {% endif %}fromJS(data: any{% if HandleReferences %}, _mappings?: any{% endif %}): {{ ClassName }}{% if HandleReferences %} | null{% endif %} { {%- if HandleReferences -%} {%- if HasBaseDiscriminator -%} {%- for derivedClass in DerivedClasses -%} @@ -78,7 +78,7 @@ {%- endif -%} } - {% if HasInheritance and SupportsOverrideKeyword %}override {% endif %}toJSON(data?: any) { + {% if HasInheritance %}override {% endif %}toJSON(data?: any) { data = typeof data === 'object' ? data : {}; {%- if HasDiscriminator -%} data["{{ BaseDiscriminator }}"] = this._discriminator; diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptGeneratorSettings.cs b/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptGeneratorSettings.cs index c5923a1d3..7fa972c8b 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptGeneratorSettings.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptGeneratorSettings.cs @@ -25,7 +25,7 @@ public TypeScriptGeneratorSettings() EnumStyle = TypeScriptEnumStyle.Enum; UseLeafType = false; ExtensionCode = string.Empty; - TypeScriptVersion = 2.7m; + TypeScriptVersion = 4.3m; GenerateConstructorInterface = true; ConvertConstructorInterfaceData = false; ExportTypes = true; @@ -46,15 +46,6 @@ public TypeScriptGeneratorSettings() /// Gets or sets the target TypeScript version (default: 2.7). public decimal TypeScriptVersion { get; set; } - /// Gets a value indicating whether the target TypeScript version supports strict null checks. - public bool SupportsStrictNullChecks => TypeScriptVersion >= 2.0m; - - /// Gets a value indicating whether the target TypeScript version requires strict property initialization. - public bool RequiresStrictPropertyInitialization => TypeScriptVersion >= 2.7m; - - /// Gets a value indicating whether the target TypeScript version supports override keyword. - public bool SupportsOverrideKeyword => TypeScriptVersion >= 4.3m; - /// Gets or sets a value indicating whether to mark optional properties with ? (default: false). public bool MarkOptionalProperties { get; set; } diff --git a/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptTypeResolver.cs b/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptTypeResolver.cs index 21ffd9d46..e5bba7e8d 100644 --- a/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptTypeResolver.cs +++ b/src/NJsonSchema.CodeGeneration.TypeScript/TypeScriptTypeResolver.cs @@ -155,7 +155,7 @@ private string Resolve(JsonSchema schema, string? typeNameHint, bool addInterfac var resolvedType = ResolveDictionaryKeyType(schema, defaultType); if (resolvedType != defaultType) { - var keyType = Settings.TypeScriptVersion >= 2.1m ? prefix + resolvedType : defaultType; + var keyType = prefix + resolvedType; if (keyType != defaultType && schema.DictionaryKey?.ActualTypeSchema.IsEnumeration == true) { if (Settings.EnumStyle == TypeScriptEnumStyle.Enum) @@ -342,7 +342,7 @@ private string ResolveArrayOrTuple(JsonSchema schema, string? typeNameHint, bool private string GetNullableItemType(JsonSchema schema, string itemType) { - if (Settings.SupportsStrictNullChecks && schema.Item?.IsNullable(Settings.SchemaType) == true) + if (schema.Item?.IsNullable(Settings.SchemaType) == true) { return $"({itemType} | {Settings.NullValue.ToString().ToLowerInvariant()})"; }