# JoinNames

`type` in `core` · v0.8.0

<https://docs.seedcord.org/packages/core/0.8.0/types/join-names>

## Declaration

```ts
type JoinNames<
    Gates extends readonly Gate<GateContextBase>[],
    Sep extends string
> = Gates extends readonly [
    infer Only extends Gate<GateContextBase>
]
    ? Grouped<GateName<Only>>
    : Gates extends readonly [
            infer First extends Gate<GateContextBase>,
            ...infer Rest extends readonly Gate<GateContextBase>[]
        ]
      ? `${Grouped<GateName<First>>}${Sep}${JoinNames<Rest, Sep>}`
      : string;
```
