@@ -371,8 +371,13 @@ export namespace NestiaMigrateSchemaProgrammer {
371371 required : string [ ] ;
372372 key : string ;
373373 value : OpenApi . IJsonSchema ;
374- } ) =>
375- FilePrinter . description (
374+ } ) => {
375+ const valueTypeNode : ts . TypeNode = write ( {
376+ components : props . components ,
377+ importer : props . importer ,
378+ schema : props . value ,
379+ } ) ;
380+ return FilePrinter . description (
376381 ts . factory . createPropertySignature (
377382 undefined ,
378383 Escaper . variable ( props . key )
@@ -381,14 +386,21 @@ export namespace NestiaMigrateSchemaProgrammer {
381386 props . required . includes ( props . key )
382387 ? undefined
383388 : ts . factory . createToken ( ts . SyntaxKind . QuestionToken ) ,
384- write ( {
385- components : props . components ,
386- importer : props . importer ,
387- schema : props . value ,
388- } ) ,
389+ props . required . includes ( props . key )
390+ ? valueTypeNode
391+ : ts . isUnionTypeNode ( valueTypeNode )
392+ ? ts . factory . createUnionTypeNode ( [
393+ ...valueTypeNode . types ,
394+ ts . factory . createTypeReferenceNode ( "undefined" ) ,
395+ ] )
396+ : ts . factory . createUnionTypeNode ( [
397+ valueTypeNode ,
398+ ts . factory . createTypeReferenceNode ( "undefined" ) ,
399+ ] ) ,
389400 ) ,
390401 writeComment ( props . value ) ,
391402 ) ;
403+ } ;
392404
393405 const writeDynamicProperty = ( props : {
394406 components : OpenApi . IComponents ;
0 commit comments