---
url: https://node-ts.github.io/bus/api/bus-core/classes/TypedEmitter.md
---
[API reference](../../index.md) / [@node-ts/bus-core](../index.md) / TypedEmitter

# Class: TypedEmitter\<T>

Defined in: [packages/bus-core/src/util/typed-emitter.ts:19](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L19)

An EventEmitter that emits a strongly typed event.

Listeners are invoked synchronously. A listener that returns a promise isn't awaited, but its rejection
is caught and passed to `onListenerRejected` instead of becoming an unhandled rejection.

## See

https://basarat.gitbook.io/typescript/main-1/typed-event

## Type Parameters

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

## Constructors

### Constructor

```ts
new TypedEmitter<T>(onListenerRejected?): TypedEmitter<T>;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:26](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L26)

#### Parameters

| Parameter | Type | Description |
| ------ | ------ | ------ |
| `onListenerRejected?` | [`ListenerRejectedHandler`](../type-aliases/ListenerRejectedHandler.md) | Called when an async listener rejects. When not provided, rejections are ignored. |

#### Returns

`TypedEmitter`<`T`>

## Methods

### emit()

```ts
emit(event): void;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:42](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L42)

#### Parameters

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

#### Returns

`void`

***

### off()

```ts
off(listener): void;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:37](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L37)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | [`Listener`](../interfaces/Listener.md)<`T`> |

#### Returns

`void`

***

### on()

```ts
on(listener): Unsubscribe;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:28](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L28)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | [`Listener`](../interfaces/Listener.md)<`T`> |

#### Returns

[`Unsubscribe`](../type-aliases/Unsubscribe.md)

***

### once()

```ts
once(listener): void;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:33](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L33)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `listener` | [`Listener`](../interfaces/Listener.md)<`T`> |

#### Returns

`void`

***

### pipe()

```ts
pipe(typedEmitter): Unsubscribe;
```

Defined in: [packages/bus-core/src/util/typed-emitter.ts:54](https://github.com/node-ts/bus/blob/2e6cf65c27833b707ae31ee623cfb6343770f434/packages/bus-core/src/util/typed-emitter.ts#L54)

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `typedEmitter` | `TypedEmitter`<`T`> |

#### Returns

[`Unsubscribe`](../type-aliases/Unsubscribe.md)
