# `syntax.variable_type_required`

Variable has no type.

Area 2, [Values and types](../topics/values-and-types.md); not declinable; the next step is usually the agent's.

Every variable states its type, and a literal takes it:

```jadpo
type ItemPrice = Decimal {
    scale: 2
    min: 0.00
}

function free() -> ItemPrice {
    var price = ItemPrice(0.00)
    return price
}
```

```text
error: `price` needs a type
 --> main.jadpo:7:9
  |
7 |     var price = ItemPrice(0.00)
  |         ^^^^^ expected `: Type` after the name
  reason: Every variable states its type, so a reader sees it where the value is introduced.
  next: Write `var price: ItemPrice = 0.00` (agent)
  rule: syntax.variable_type_required
  help: https://jadpo.dev/docs/errors/syntax.variable_type_required

check failed: 1 error, 1 file
```
