@@ -271,7 +271,12 @@ impl<'a, T: Write> TypeScriptEmitter<'a, T> {
271271 writeln ! ( self . out, "export type {name} = {{" ) ?;
272272 self . out . indent ( ) ;
273273 for field in fields {
274- writeln ! ( self . out, "{}: {}," , field. name, self . quote_type( & field. value) ) ?;
274+ match field. value {
275+ Format :: Unit => {
276+ writeln ! ( self . out, "{}?: {}," , field. name, self . quote_type( & field. value) ) ?;
277+ }
278+ _ => { writeln ! ( self . out, "{}: {}," , field. name, self . quote_type( & field. value) ) ?; }
279+ }
275280 }
276281 self . out . unindent ( ) ;
277282 writeln ! ( self . out, "}}" ) ?;
@@ -286,7 +291,7 @@ impl<'a, T: Write> TypeScriptEmitter<'a, T> {
286291 for ( _index, variant) in variants {
287292 match & variant. value {
288293 VariantFormat :: Unit => {
289- writeln ! ( self . out, r#"| {{ $: "{0}", {0}: {1} }}"# , variant. name, self . quote_type( & Format :: Unit ) ) ?;
294+ writeln ! ( self . out, r#"| {{ $: "{0}", {0}? : {1} }}"# , variant. name, self . quote_type( & Format :: Unit ) ) ?;
290295 }
291296 VariantFormat :: Struct ( fields) => {
292297 let fields_str = fields. iter ( ) . map ( |f| format ! ( "{}: {}" , f. name, self . quote_type( & f. value) ) ) . collect :: < Vec < _ > > ( ) . join ( ", " ) ;
0 commit comments