# utils/observablemixin

module

<a id="interfaces">

## Interfaces

<a id="interface-Observable">

### `Observable`

<a id="interface-ObservableDualBindChain">

### `ObservableDualBindChain`

<a id="interface-ObservableMultiBindChain">

### `ObservableMultiBindChain`

<a id="interface-ObservableSingleBindChain">

### `ObservableSingleBindChain`

<a id="type-definitions">

## Type Definitions

<a id="typedef-DecoratedMethodEvent">

### `DecoratedMethodEvent`

<a id="typedef-ObservableChangeEvent">

### `ObservableChangeEvent`

<a id="typedef-ObservableMixinConstructor">

### `ObservableMixinConstructor`

<a id="typedef-ObservableSetEvent">

### `ObservableSetEvent`

<a id="typedef-ObservableWithProperty">

### `ObservableWithProperty`

<a id="functions">

## Functions

<a id="function-ObservableMixin:EXTENDS">

### `ObservableMixin( base ) → ObservableMixinConstructor<Base>`

A mixin that injects the "observable properties" and data binding functionality described in the [`Observable`](module_utils_observablemixin-Observable.md) interface.

This function creates a class that inherits from the provided `base` and implements `Observable` interface.

```typescript
class BaseClass { ... }

class MyClass extends ObservableMixin( BaseClass ) {
	// This class derives from `BaseClass` and implements the `Observable` interface.
}
```

Read more about the concept of observables in the:

* [Event system and observables](../framework/architecture/core-editor-architecture.md#event-system-and-observables) section of the [Core editor architecture](../framework/architecture/core-editor-architecture.md) guide,
* [Observables deep-dive](../framework/deep-dive/observables.md) guide.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-utils/src/observablemixin.ts#L64)

#### Type parameters

* `Base: extends Constructor<Emitter>`

#### Parameters

* `base: Base`

#### Returns

* `ObservableMixinConstructor<Base>`

<a id="function-ObservableMixin:NO_ARGUMENTS">

### `ObservableMixin() → ObservableMixinConstructor`

A mixin that injects the "observable properties" and data binding functionality described in the [`Observable`](module_utils_observablemixin-Observable.md) interface.

This function creates a class that implements `Observable` interface.

```typescript
class MyClass extends ObservableMixin() {
	// This class implements the `Observable` interface.
}
```

Read more about the concept of observables in the:

* [Event system and observables](../framework/architecture/core-editor-architecture.md#event-system-and-observables) section of the [Core editor architecture](../framework/architecture/core-editor-architecture.md) guide,
* [Observables deep dive](../framework/deep-dive/observables.md) guide.

[See source](https://github.com/ckeditor/ckeditor5/blob/master/packages/ckeditor5-utils/src/observablemixin.ts#L85)

#### Returns

* `ObservableMixinConstructor`

---

Full index of the CKEditor 5 API reference: [llms.txt](llms.txt)
