# ColumnType

> _Since v1.0.0_

Column type - built-in primitives or custom type strings.

Use built-in types for automatic formatting, or define custom types
(e.g., 'currency', 'country') with type-level defaults via `typeDefaults`.

```ts
type ColumnType = PrimitiveColumnType | string & object
```

#### Example

```typescript
// Built-in types
{ field: 'name', type: 'string' }
{ field: 'salary', type: 'number' }

// Custom types with defaults
grid.gridConfig = {
  columns: [
    { field: 'salary', type: 'currency' },
    { field: 'birthCountry', type: 'country' },
  ],
  typeDefaults: {
    currency: {
      format: (v) => `$${Number(v).toFixed(2)}`,
    },
    country: {
      renderer: (ctx) => `🌍 ${ctx.value}`,
    },
  },
};
```

## See Also

- [`PrimitiveColumnType`](/grid/api/core/types/primitivecolumntype.md) for built-in types
- [`TypeDefault`](/grid/api/core/interfaces/typedefault.md) for defining custom type defaults
