From 7eb3d456370d7d66b0856e32b2d2602abf598516 Mon Sep 17 00:00:00 2001 From: dcodeIO Date: Fri, 30 Dec 2016 13:11:21 +0100 Subject: [PATCH] Respect optional properties when writing interfaces in tsd-jsdoc, fixes #598 --- lib/tsd-jsdoc/publish.js | 5 ++++- types/protobuf.js.d.ts | 15 ++++++++------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/lib/tsd-jsdoc/publish.js b/lib/tsd-jsdoc/publish.js index acf08afd3..97efab01a 100644 --- a/lib/tsd-jsdoc/publish.js +++ b/lib/tsd-jsdoc/publish.js @@ -275,7 +275,10 @@ function writeInterface(element) { writeln("interface ", element.name, " {"); ++indent; element.properties.forEach(function(property) { - writeln(property.name, ": ", getTypeOf(property), ";"); + write(property.name); + if (property.optional) + write("?"); + writeln(": ", getTypeOf(property), ";"); }); --indent; writeln("}"); diff --git a/types/protobuf.js.d.ts b/types/protobuf.js.d.ts index 80d909149..86f926789 100644 --- a/types/protobuf.js.d.ts +++ b/types/protobuf.js.d.ts @@ -1,5 +1,6 @@ // $> pbts --name protobufjs --out types/protobuf.js.d.ts src -// Generated Fri, 30 Dec 2016 00:51:27 UTC +// Generated Fri, 30 Dec 2016 12:09:31 UTC + declare module "protobufjs" { /** @@ -131,11 +132,11 @@ declare module "protobufjs" { * @property {boolean} [defaults=false] Also sets default values on the resulting object */ interface JSONConversionOptions { - fieldsOnly: boolean; - longs: any; - enums: any; - bytes: any; - defaults: boolean; + fieldsOnly?: boolean; + longs?: any; + enums?: any; + bytes?: any; + defaults?: boolean; } /** @@ -145,7 +146,7 @@ declare module "protobufjs" { * @property {boolean} [fieldsOnly=false] Keeps only properties that reference a field */ interface MessageConversionOptions { - fieldsOnly: boolean; + fieldsOnly?: boolean; } /**