Skip to content

Commit 80892dc

Browse files
authored
Merge pull request #4 from roman-g/master
Union type can be used as array element type
2 parents f24c2d9 + c4dd3cf commit 80892dc

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/LazyCoder/Writers/TsTypeWriter.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,14 @@ public void Write(IKeyboard keyboard,
6666
private void Write(IKeyboard keyboard,
6767
TsUnionType tsUnionType)
6868
{
69+
keyboard.Type("(");
6970
for (var i = 0; i < tsUnionType.Types.Length; i++)
7071
{
7172
Write(keyboard, tsUnionType.Types[i]);
7273
if (i != tsUnionType.Types.Length - 1)
7374
keyboard.Type(" | ");
7475
}
76+
keyboard.Type(")");
7577
}
7678

7779
private void Write(IKeyboard keyboard,

tests/LazyCoder.Tests/TsInterfaceWriterTest.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,16 @@ public void Simple()
1616
{
1717
new TsPropertySignature { Name = "FirstProperty", Type = TsPredefinedType.Boolean() },
1818
new TsPropertySignature { Name = "SecondProperty", Type = TsPredefinedType.Number(), Optional = true },
19-
new TsPropertySignature { Name = "ThirdProperty", Type = new TsUnionType(TsPredefinedType.String(), new TsNull()) }
19+
new TsPropertySignature { Name = "ThirdProperty", Type = new TsUnionType(TsPredefinedType.String(), new TsNull()) },
20+
new TsPropertySignature { Name = "FourthProperty", Type = new TsArrayType { ElementType = new TsUnionType(TsPredefinedType.String(), new TsNull()) } }
2021
}
2122
};
23+
2224
tsInterface.ShouldBeTranslatedTo("export interface SomeInterface {",
2325
" FirstProperty: boolean;",
2426
" SecondProperty?: number;",
25-
" ThirdProperty: string | null;",
27+
" ThirdProperty: (string | null);",
28+
" FourthProperty: (string | null)[];",
2629
"}");
2730
}
2831
}

0 commit comments

Comments
 (0)