@@ -271,7 +271,12 @@ impl<'a, T: Write> TypeScriptEmitter<'a, T> {
271
271
writeln ! ( self . out, "export type {name} = {{" ) ?;
272
272
self . out . indent ( ) ;
273
273
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
+ }
275
280
}
276
281
self . out . unindent ( ) ;
277
282
writeln ! ( self . out, "}}" ) ?;
@@ -286,7 +291,7 @@ impl<'a, T: Write> TypeScriptEmitter<'a, T> {
286
291
for ( _index, variant) in variants {
287
292
match & variant. value {
288
293
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 ) ) ?;
290
295
}
291
296
VariantFormat :: Struct ( fields) => {
292
297
let fields_str = fields. iter ( ) . map ( |f| format ! ( "{}: {}" , f. name, self . quote_type( & f. value) ) ) . collect :: < Vec < _ > > ( ) . join ( ", " ) ;
0 commit comments