ISP quy định không nên bắt client implement những interface mà nó không sử dụng — thay vì một interface lớn, hãy tách thành nhiều interface nhỏ, chuyên biệt.
Ví dụ: thay vì interface Animal { fly(): void; swim(): void; run(): void } bắt Dog phải implement fly(), ta tách thành Flyable, Swimmable, Runnable rồi class Dog implements Runnable, Swimmable. Trong TypeScript, ISP rất tự nhiên vì có thể dùng intersection types và multiple interface implementation. Dấu hiệu vi phạm: class implement interface nhưng để các method trống hoặc throw NotImplementedException. ISP đặc biệt quan trọng khi thiết kế API/SDK public — interface nhỏ giúp người dùng dễ hiểu và ít bị breaking change hơn.