The Interface Segregation Principle (ISP) states that clients should not be forced to depend on interface methods they do not use. Interfaces should be small and focused rather than large and monolithic.

In NestJS, this principle is visible in the separation of concerns between different architectural elements — controllers depend only on service interfaces they need, guards implement only the CanActivate interface, and pipes implement only PipeTransform, rather than a single large “middleware” interface.