Я хочу создать функцию, которая извлекает «параметры универсального типа» из определения типа (в виде простой строки).
Должна быть строка ввода, подобная этой:
Foo<Bar, Baz<Qux>>
И вернуть объект с указанными типами + обобщенные элементы, что-то вроде этого (конечно, не обязательно в этом точном формате, если я могу получить необходимую информацию):
{
"name": "Foo",
"generics": [
{
"name": "Bar",
"generics": []
},
{
"name": "Baz",
"generics": [
{
"name": "Qux",
"generics": []
}
]
}
]
}
Полагаю, можно использовать String.match
с таким регулярным выражением, как /<.*>/g
, разделить результат с запятой в качестве разделителя и рекурсивно проанализировать обобщения для каждого параметра. Тем не менее, я чувствую, что это слишком сложно, и что я упускаю гораздо более простой способ.