---
meta:
 - name: keywords
   description: api typescript node.js documentation Container class
---
# Container - @tsed/di

## Usage

```typescript
import { Container } from "@tsed/di";
```

> See [/packages/di/src/common/domain/Container.ts](https://github.com/tsedio/tsed/blob/v8.27.0/packages/di/src/common/domain/Container.ts#L0-L0).

## Overview

```ts
class Container extends Map<TokenProvider, Provider> {
    add(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
    addProvider(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
    hasProvider(token: TokenProvider): boolean;
    setProvider(token: TokenProvider, provider: Provider): this;
    getProvider<T extends Provider = Provider>(token: TokenProvider | undefined): T | undefined;
    getProviders(type?: TokenProvider | ProviderType | string | string[]): Provider[];
    addProviders(container: Map<TokenProvider, Provider>): void;
}
```

<!-- Description -->

## Description

Provider container managing registered providers and their metadata.

Extends `Map` to provide specialized methods for adding, retrieving, and managing providers
within the dependency injection system. Acts as a registry for all injectable classes and values.

### Usage

```typescript
import {Container} from "@tsed/di";

const container = new Container();
container.add(MyService, {scope: ProviderScope.SINGLETON});

const provider = container.getProvider(MyService);
const controllers = container.getProviders(ProviderType.CONTROLLER);
```

<!-- Members -->

## add

```ts
add(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
```

## addProvider

```ts
addProvider(token: TokenProvider, settings?: Partial<ProviderOpts>): this;
```

Add a provider to the

## hasProvider

```ts
hasProvider(token: TokenProvider): boolean;
```

## setProvider

```ts
setProvider(token: TokenProvider, provider: Provider): this;
```

Add a provider to the

## getProvider

```ts
getProvider<T extends Provider = Provider>(token: TokenProvider | undefined): T | undefined;
```

The getProvider() method returns a specified element from a Map object.

## getProviders

```ts
getProviders(type?: TokenProvider | ProviderType | string | string[]): Provider[];
```

-   **type** (`TokenProvider` | `ProviderType` | `string` | `string[]`): Optional. Filter the list by the given ProviderType.

Get all providers registered in the injector container.

## addProviders

```ts
addProviders(container: Map<TokenProvider, Provider>): void;
```
