---
title: "Tag | Customer's Canvas On-Premises"
canonical: "https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/Tag/"
---

# Tag

> Type safety way for write additional data to `item.tags`.

## Classes

### Tag

#### Example

```ts
const MY_TAG = new Tag<boolean>("my_data"); // Create Tag instance
MY_TAG.write(item, true); // Write data. Similarly item.tags["my_data"] = true;
const data = MY_TAG.read(item, false); // Read data. Similarly const data = item.tags["my_data"] ?? false;
MY_TAG.write(item, "hello world"); // Type error - MY_TAG has boolean type
```

#### Type Parameters

| Type Parameter |
| ------ |
| `T` |

#### Constructors

##### Constructor

```ts
new Tag<T>(name, def?): Tag<T>;
```

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `name` | `string` |
| `def?` | `T` |

###### Returns

[`Tag`](#tag)\<`T`\>

#### Methods

##### clear()

```ts
clear(model): void;
```

Remove tag from item.

Similarly delete item.tags["name"];

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `model` | [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent) |

###### Returns

`void`

##### default()

```ts
default(): T;
```

Return the default value if it specified

###### Returns

`T`

##### has()

```ts
has(model): boolean;
```

Check has wrote data by tag

Similarly Object.hasOwn(item.tags, "name");

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `model` | [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent) |

###### Returns

`boolean`

##### read()

```ts
read(model, def?): T;
```

Read data from item.

Similarly const data = item.tags["name"] ?? def;

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `model` | [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent) |
| `def?` | `T` |

###### Returns

`T`

##### write()

```ts
write(model, value): void;
```

Write data to item.

Similarly `item.tags["name"] = value;`

###### Parameters

| Parameter | Type |
| ------ | ------ |
| `model` | [`ModelComponent`](https://customerscanvas.com/docs/on-premises/design-atoms-js/reference/design-atoms-model/ModelComponent.md#abstract-modelcomponent) |
| `value` | `T` |

###### Returns

`void`
