---
title: Types
description: The types that properties, arguments, and return values can have.
---

A *type* is what a [property](../language/properties/), a function or callback argument, or a return value can have:
the [primitive and numeric types](numeric-types/), [strings](strings/), [colors and brushes](colors-and-brushes/),
[images](images/), [arrays](arrays-and-models/), and the [structs and enums](../language/structs-and-enums/) you declare.

Element types like `Rectangle`, `TouchArea`, or `Timer` are not property types:
they are instantiated in the element tree and documented in the Elements section.
