Skip to content

Commit c84b611

Browse files
committed
fix(parser): reactnode should make proptype optional
1 parent 21351a4 commit c84b611

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/parser.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ export function parseFromProgram(filePath: string, program: ts.Program) {
211211
return t.elementNode('element');
212212
}
213213
case 'React.ReactNode': {
214-
return t.elementNode('node');
214+
return t.unionNode([t.elementNode('node'), t.undefinedNode()]);
215215
}
216216
}
217217
}

src/types/props/union.ts

+15-1
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,23 @@ export interface UnionNode extends Node {
77
}
88

99
export function unionNode(types: Node[]): UnionNode {
10+
const flatTypes: Node[] = [];
11+
12+
flattenTypes(types);
13+
14+
function flattenTypes(nodes: Node[]) {
15+
nodes.forEach(x => {
16+
if (isUnionNode(x)) {
17+
flattenTypes(x.types);
18+
} else {
19+
flatTypes.push(x);
20+
}
21+
});
22+
}
23+
1024
return {
1125
type: typeString,
12-
types: types,
26+
types: flatTypes,
1327
};
1428
}
1529

0 commit comments

Comments
 (0)