Skip to content

OverrideProvider

@tsed/di

Usage

typescript
import { OverrideProvider } from "@tsed/di";

See /packages/di/src/common/decorators/overrideProvider.ts.

Overview

ts
function OverrideProvider(originalProvider: Type<any>): Function;
  • originalProvider (Type<any>): The provider class to override

Description

Override an existing provider registration with a new implementation.

Replaces the implementation class of a registered provider while keeping the same token. Useful for testing, plugin systems, or providing alternative implementations.

Usage

typescript
import {Injectable, OverrideProvider} from "@tsed/di";

@Injectable()
class OriginalService {
  getData() {
    return "original";
  }
}

// Override with new implementation
@OverrideProvider(OriginalService)
class MockService {
  getData() {
    return "mocked";
  }
}

// Injected instances will now use MockService
@Injectable()
class UserService {
  constructor(private service: OriginalService) {
    console.log(this.service.getData()); // "mocked"
  }
}

Released under the MIT License.