{{#if this}}
{{#if reflection}}
{{#compact}}
{{reflection.name}}
{{#if typeArguments}}
<
{{#each typeArguments}}
{{#if @index}}
,
{{/if}}{{> type}}
{{/each}}
>
{{/if}}
{{/compact}}
{{else}}
{{#if elementType}}
{{#with elementType}}
{{#compact}}
{{#if types}}
(
{{/if}}
{{> type}}
{{#if types}}
)
{{/if}}[]
{{/compact}}
{{/with}}
{{else}}
{{#if types}}
{{#each types}}
{{#if @index}}
{{#ifCond ../type '==' 'intersection'}}&{{else}}|{{/ifCond}}
{{/if}}{{> type}}
{{/each}}
{{else}}
{{#if elements}}
{{#compact}}
[
{{#each elements}}
{{#if @index}}
,
{{/if}}{{> type}}
{{/each}}
]
{{/compact}}
{{else}}
{{#compact}}
{{#if name}}
{{name}}
{{else}}
{{#if value}}
"{{value}}"
{{else}}
{{this}}
{{/if}}
{{/if}}
{{#if typeArguments}}
<
{{#each typeArguments}}
{{#if @index}}
,
{{/if}}{{> type}}
{{/each}}
>
{{/if}}
{{/compact}}
{{/if}}
{{/if}}
{{/if}}
{{/if}}
{{else}}
void
{{/if}}