[thorium-states](../README.md) / [Exports](../modules.md) / IState

# Interface: IState\<T\>

L'interface `IState` définit la structure d'un objet d'état utilisé dans la bibliothèque de gestion d'états.
Elle comporte les propriétés et méthodes suivantes :

## Type parameters

| Name |
| :------ |
| `T` |

## Implemented by

- [`_State`](../classes/State.md)

## Table of contents

### Properties

- [delete](IState.md#delete)
- [id](IState.md#id)
- [mutator](IState.md#mutator)
- [subscribe](IState.md#subscribe)
- [unsubscribe](IState.md#unsubscribe)
- [value](IState.md#value)

## Properties

### delete

• **delete**: () => `void`

#### Type declaration

▸ (): `void`

Supprimer l'objet d'état.
Supprime l'objet d'état de la collection d'états.
* Exemple :
```typescript
let [state , setState] = useState<string>('Hello World');
... // autres opérations
state.delete();
```

##### Returns

`void`

#### Defined in

[index.ts:131](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L131)

___

### id

• **id**: `string`

Un identifiant unique pour l'objet d'état.
Il est utilisé pour distinguer et accéder à des objets d'état spécifiques au sein d'une collection d'états.

#### Defined in

[index.ts:62](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L62)

___

### mutator

• **mutator**: [`StateMutator`](../modules.md#statemutator)\<`T`\>

Obtient le mutateur de l'état.
Un mutateur est une fonction qui permet de modifier l'état tout en notifiant les abonnés du changement.
Le mutateur renvoie un tuple avec deux éléments :
 - Le premier élément du tuple renvoie la valeur actuelle de l'état, permettant un accès direct à la valeur.
   Si la valeur contenue dans l'état est un objet ou un tableau, un proxy est utilisé pour gérer l'accès aux propriétés.
   Le proxy permet d'accéder à l'objet ou au tableau tout en maintenant un lien vers l'état lui-même.
   Si la valeur est une primitive, elle est directement renvoyée en tant que valeur de l'état.
 - Le deuxième élément du tuple renvoie une fonction de mise à jour de l'état. Cette fonction prend une nouvelle valeur
   en paramètre et met à jour la valeur de l'état, tout en notifiant les abonnés du changement.

#### Defined in

[index.ts:89](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L89)

___

### subscribe

• **subscribe**: (`ref`: `HTMLElement`, `callback`: (`value`: `T`) => `T`) => \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`

#### Type declaration

▸ (`ref`, `callback`): \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`

S'abonner aux changements d'état.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `ref` | `HTMLElement` | Une référence à un élément associé à l'abonnement. |
| `callback` | (`value`: `T`) => `T` | Une fonction de rappel appelée lorsque l'état change. |

##### Returns

\`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`

Un identifiant unique pour le gestionnaire de mutations.
## Example
```typescript
const [countState,setCountState] = useState<number>(42);
const subscriptionId = countState.subscribe(document.body, (value) => {
  console.log('State changed:', value);
});
```

#### Defined in

[index.ts:104](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L104)

___

### unsubscribe

• **unsubscribe**: (`id`: \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\`) => `void`

#### Type declaration

▸ (`id`): `void`

Se désabonner des changements d'état.

##### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `id` | \`$\{string}-$\{string}-$\{string}-$\{string}-$\{string}\` | Un identifiant unique pour le gestionnaire de mutations à supprimer. ## Example ```typescript const [countState,setCountState] = useState<number>(42); const subscriptionId = countState.subscribe(document.body, (value) => { console.log('State changed:', value); }); // Plus tard, pour se désabonner : countState.unsubscribe(subscriptionId); ``` |

##### Returns

`void`

#### Defined in

[index.ts:119](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L119)

___

### value

• **value**: `T`

Représente la valeur actuelle de l'état.
Le type `T` est un paramètre de type générique qui peut être de n'importe quel type spécifié.

#### Defined in

[index.ts:68](https://github.com/Odyssee-Software/thorium-states/blob/21970f9/src/index.ts#L68)
