Skip to content

Commit 9ea922c

Browse files
Support for generic arrays
1 parent 68de040 commit 9ea922c

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ public Result processType(Type javaType, Context context) {
7878
return new Result(new TsType.GenericReferenceType(context.getSymbol(javaClass), tsTypeArguments), discoveredClasses);
7979
}
8080
}
81+
if (javaType instanceof GenericArrayType) {
82+
final GenericArrayType genericArrayType = (GenericArrayType) javaType;
83+
final Result result = context.processType(genericArrayType.getGenericComponentType());
84+
return new Result(new TsType.BasicArrayType(result.getTsType()), result.getDiscoveredClasses());
85+
}
8186
if (javaType instanceof TypeVariable) {
8287
final TypeVariable<?> typeVariable = (TypeVariable<?>) javaType;
8388
return new Result(new TsType.GenericVariableType(typeVariable.getName()));

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ public void testGenericsWithoutTypeArgument() {
113113
assertEquals(expected, output.trim());
114114
}
115115

116+
@Test
117+
public void testGenericArray() {
118+
final Settings settings = TestUtils.settings();
119+
final String output = new TypeScriptGenerator(settings).generateTypeScript(Input.from(TableGA.class));
120+
final String expected =
121+
"interface TableGA<T> {\n" +
122+
" rows: T[];\n" +
123+
"}";
124+
assertEquals(expected, output.trim());
125+
}
126+
116127
class A<U,V> {
117128
public A<String, String> x;
118129
public A<A<String, B>, List<String>> y;
@@ -157,4 +168,8 @@ class Page2 {
157168
public Table someTable;
158169
}
159170

171+
class TableGA<T> {
172+
public T[] rows;
173+
}
174+
160175
}

0 commit comments

Comments
 (0)