Skip to content

Commit 7eb3d45

Browse files
committed
Respect optional properties when writing interfaces in tsd-jsdoc, fixes #598
1 parent 1f18453 commit 7eb3d45

File tree

2 files changed

+12
-8
lines changed

2 files changed

+12
-8
lines changed

lib/tsd-jsdoc/publish.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,10 @@ function writeInterface(element) {
275275
writeln("interface ", element.name, " {");
276276
++indent;
277277
element.properties.forEach(function(property) {
278-
writeln(property.name, ": ", getTypeOf(property), ";");
278+
write(property.name);
279+
if (property.optional)
280+
write("?");
281+
writeln(": ", getTypeOf(property), ";");
279282
});
280283
--indent;
281284
writeln("}");

types/protobuf.js.d.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// $> pbts --name protobufjs --out types/protobuf.js.d.ts src
2-
// Generated Fri, 30 Dec 2016 00:51:27 UTC
2+
// Generated Fri, 30 Dec 2016 12:09:31 UTC
3+
34
declare module "protobufjs" {
45

56
/**
@@ -131,11 +132,11 @@ declare module "protobufjs" {
131132
* @property {boolean} [defaults=false] Also sets default values on the resulting object
132133
*/
133134
interface JSONConversionOptions {
134-
fieldsOnly: boolean;
135-
longs: any;
136-
enums: any;
137-
bytes: any;
138-
defaults: boolean;
135+
fieldsOnly?: boolean;
136+
longs?: any;
137+
enums?: any;
138+
bytes?: any;
139+
defaults?: boolean;
139140
}
140141

141142
/**
@@ -145,7 +146,7 @@ declare module "protobufjs" {
145146
* @property {boolean} [fieldsOnly=false] Keeps only properties that reference a field
146147
*/
147148
interface MessageConversionOptions {
148-
fieldsOnly: boolean;
149+
fieldsOnly?: boolean;
149150
}
150151

151152
/**

0 commit comments

Comments
 (0)