Skip to content

Commit 6e525ce

Browse files
Java Optional<T> properties marked optional in TS (refs #159, #93)
1 parent 59cfd02 commit 6e525ce

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

typescript-generator-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<!--<dependency>
3232
<groupId>com.fasterxml.jackson.datatype</groupId>
3333
<artifactId>jackson-datatype-jdk8</artifactId>
34-
<version>2.6.3</version>
34+
<version>2.8.6</version>
3535
</dependency>-->
3636
<dependency>
3737
<groupId>javax.ws.rs</groupId>

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/DefaultTypeProcessor.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public Result processType(Type javaType, Context context) {
3838
if (javaClass.getName().equals("java.util.OptionalInt") ||
3939
javaClass.getName().equals("java.util.OptionalLong") ||
4040
javaClass.getName().equals("java.util.OptionalDouble")) {
41-
return new Result(TsType.Number);
41+
return new Result(TsType.Number.optional());
4242
}
4343
// generic structural type used without type arguments
4444
if (javaClass.getTypeParameters().length > 0) {
@@ -64,7 +64,8 @@ public Result processType(Type javaType, Context context) {
6464
return new Result(new TsType.IndexedArrayType(TsType.String, result.getTsType()), result.getDiscoveredClasses());
6565
}
6666
if (javaClass.getName().equals("java.util.Optional")) {
67-
return context.processType(parameterizedType.getActualTypeArguments()[0]);
67+
final Result result = context.processType(parameterizedType.getActualTypeArguments()[0]);
68+
return new Result(result.getTsType().optional(), result.getDiscoveredClasses());
6869
}
6970
// generic structural type
7071
final List<Class<?>> discoveredClasses = new ArrayList<>();

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/OptionalTest.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
77
//import java.util.Objects;
88
//import java.util.Optional;
9+
//import java.util.OptionalInt;
910
//import org.junit.Assert;
1011
//import org.junit.Test;
1112

@@ -21,7 +22,8 @@ public class OptionalTest {
2122
// Assert.assertEquals(
2223
// "interface Person {\n" +
2324
// " name: string;\n" +
24-
// " email: string;\n" +
25+
// " email?: string;\n" +
26+
// " age?: number;\n" +
2527
// "}",
2628
// output.trim());
2729
// }
@@ -52,6 +54,7 @@ public class OptionalTest {
5254
// private static class Person {
5355
// public String name;
5456
// public Optional<String> email;
57+
// public OptionalInt age;
5558
//
5659
// public Person() {
5760
// }

0 commit comments

Comments
 (0)