---
url: >-
  https://lit-ui-router.dev/reference/ui-router-server/matcher/interfaces/ParamDeclaration.md
---
[ui-router-server](../../index.md) / [matcher](../index.md) / ParamDeclaration

# Interface: ParamDeclaration

Defined in: [url-matcher.ts:176](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/url-matcher.ts#L176)

A per-param configuration: core's ParamDeclaration members that matching
honors, plus `dynamic` and `inherit`, which only shape transitions and
matching ignores, so one declaration serves a client router too.
Relaxation vs core: `type` also accepts a plain-object
[ParamType](ParamType.md), and `value` must be static (functions are rejected).

A string `squash` is regexp source, as in core: it is spliced into the
url regexp unescaped, so regexp metacharacters change what the route
matches, while `format` emits it verbatim.

## Extends

* `Pick`<`CoreParamDeclaration`, `"value"` | `"squash"` | `"dynamic"` | `"inherit"`>

## Properties

| Property | Type | Description | Defined in |
| ------ | ------ | ------ | ------ |
|  `type?` | `string` | [`ParamType`](ParamType.md) | Type for params not already typed inline (`{id:int}`) — a built-in name or a [ParamType](ParamType.md). | [url-matcher.ts:181](https://github.com/simshanith/lit-ui-router/blob/740888c2b2ba358c4dfa52a122e927df6a604b12/packages/ui-router-server/src/url-matcher.ts#L181) |
