title: In NestJs, how to inject a service based on its interface?
body: <p>I have the next module: payment.module.ts</p>
  
  <pre><code>@Module({
    controllers: [PaymentController],
  })
  export class PaymentModule {}
  </code></pre>
  
  <p>And in the next service I want to have access to a service based on an interface</p>
  
  <p>payment.service.ts</p>
  
  <pre><code>export class PaymentService {
     constructor(private readonly notificationService: NotificationInterface,
  }
  </code></pre>
  
  <p>notification.interface.ts</p>
  
  <pre><code>export interface NotificationInterface {
    // some method definitions
  }
  </code></pre>
  
  <p>notification.service.ts</p>
  
  <pre><code>@Injectable()
  export class NotificationService implements NotificationInterface {
    // some implemented methods
  }
  </code></pre>
  
  <p>The question is how do I inject <code>NotificationService</code> based on <code>NotificationInterface</code>?</p>