Aller au contenu

Concrete Dependency Injection (ARCH3199)

Ce contenu n’est pas encore disponible dans votre langue.

Key typescript.quality.concrete-dependency · Severity info · Category quality

Typing constructor dependencies as concrete classes violates the Dependency Inversion Principle (DIP); it couples the component to a specific implementation and makes mocking for tests harder.

class ReportService {
constructor(private repo: SqlOrderRepository) {}
}
interface OrderRepository {
findAll(): Promise<Order[]>;
}
class ReportService {
constructor(private repo: OrderRepository) {}
}

Type dependencies against interfaces or abstractions instead of concrete classes.