# applyColumnDefaults

> _Since v3.0.0_

Apply column defaults to a list of columns. Individual column properties
override defaults — the per-column value always wins over the default.

```ts
applyColumnDefaults(columns: ColumnConfig<TRow, ColumnFieldKey<TRow>>[], defaults: Partial<ColumnConfig<TRow, ColumnFieldKey<TRow>>> | undefined): ColumnConfig<TRow, ColumnFieldKey<TRow>>[]
```

## Parameters

| Name | Type | Description |
| ---- | ---- | ----------- |
| `columns` | <code><a href="/grid/vue/api/types/columnconfig/">ColumnConfig</a>&lt;TRow, <a href="/grid/api/core/types/columnfieldkey/">ColumnFieldKey</a>&lt;TRow&gt;&gt;[]</code> | Normalized columns to merge defaults into |
| `defaults` | <code>Partial&lt;<a href="/grid/vue/api/types/columnconfig/">ColumnConfig</a>&lt;TRow, <a href="/grid/api/core/types/columnfieldkey/">ColumnFieldKey</a>&lt;TRow&gt;&gt;&gt; &#124; undefined</code> | Partial column config applied as a baseline; pass `undefined` to no-op |

## Returns

`ColumnConfig<TRow, ColumnFieldKey<TRow>>[]` - A new array with the defaults merged in (input is not mutated)
