interface ReaderAndWriter extends Writer, Reader {}

interface File {
  write(data: any): void;
  read(): any;
}

interface Writer {
  write(data: any): void;
}

interface Reader {
  read(): any;
}

// Beaucoup plus loin dans votre code

function doSomething(rw: Reader) {
  // On fait quelque chose...
  rw.read();
}
