> ## Documentation Index
> Fetch the complete documentation index at: https://docs.alumio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Type: Array

> Checks that the value is of type array.

export const FormField = ({property, label, required = false, diType, uiPatterns, children}) => {
  const patterns = Array.isArray(uiPatterns) ? uiPatterns : uiPatterns ? [uiPatterns] : [];
  return <div style={{
    margin: '1.5rem 0'
  }}>
      <div style={{
    display: 'flex',
    alignItems: 'baseline',
    flexWrap: 'wrap',
    gap: '0.5rem',
    marginBottom: '0.25rem'
  }}>
        <strong>{label}</strong>
        <span style={{
    fontSize: '0.7rem',
    fontWeight: 600,
    textTransform: 'uppercase',
    letterSpacing: '0.04em',
    color: required ? '#6241f5' : '#6b7280'
  }}>
          {required ? 'Required' : 'Optional'}
        </span>
      </div>

      <div>{children}</div>

      {diType || patterns.length > 0 ? <p style={{
    fontSize: '0.85rem',
    color: '#6b7280',
    marginBottom: 0
  }}>
          {diType ? <>
              See the <a href={`/references/${diType}`}>{diType}</a> reference.{' '}
            </> : null}
          {patterns.length > 0 ? <>
              Accepts a <a href={`/documentation/placeholders-and-patterns/patterns#${patterns[0]}`}>pattern</a>.
            </> : null}
        </p> : null}
    </div>;
};

Checks whether the incoming value is a list rather than a single value. Use this to confirm that a field which should hold several entries, such as the lines on an order, the images on a product, or a set of tags, really does contain a collection before you try to process each entry. A single number, piece of text, or on/off value is not a list and does not match.

Internally both a plain list (`["a", "b"]`) and a keyed object (`{ "color": "red" }`) are stored the same way, so by default both are accepted. Turn on the Strict setting when you specifically need an ordered list and want to reject keyed objects.

This documentation describes: [Schema](/schemas/condition/type-array)

## Fields

<FormField property="strict" label="Strict">
  Off by default. Controls whether a keyed object is treated as a list. Left off, both a plain list and a keyed object (such as `{ "sku": "A1" }`) are accepted. Turned on, only a plain list passes and a keyed object is rejected. An empty list passes in both modes.
</FormField>

## Sample data

This checks each entity's `lines` field.

With **Strict** off, any list-shaped value matches:

| Incoming value                               | Result         |
| -------------------------------------------- | -------------- |
| `["a", "b", "c"]` (a list)                   | Matches        |
| `{ "sku": "A1", "qty": 2 }` (a keyed object) | Matches        |
| `[]` (an empty list)                         | Matches        |
| `42` (a number)                              | Does not match |
| `"hello"` (text)                             | Does not match |
| `null` (no value)                            | Does not match |

With **Strict** on, the keyed object is rejected while plain lists still pass:

| Incoming value                               | Result         |
| -------------------------------------------- | -------------- |
| `["a", "b", "c"]` (a list)                   | Matches        |
| `[]` (an empty list)                         | Matches        |
| `{ "sku": "A1", "qty": 2 }` (a keyed object) | Does not match |

```json Configuration theme={null}
{
  "prototype": "type-array",
  "parameters": {
    "strict": false
  }
}
```
