hunk.code_window: it('should accept windowTime, bufferSize, selector of OperatorFunction', () => {
     const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => of('a'))); // $ExpectType Observable<string>
   });
   it('should accept windowTime, bufferSize, selector  of MonoTypeOperatorFunction', () => {
     const a = of(1, 2, 3).pipe(publishReplay(1, 1, (x) => x)); // $ExpectType Observable<number>
   });
  
hunk.labels: keep keep keep keep add keep keep keep
hunk.after_edit: it('should accept windowTime, bufferSize, selector returning union type', () => {
     const a = of(1, 2, 3).pipe(publishReplay(1, 1,  () => Math.random() > 0.5 ? of(123) : of('test'))); // $ExpectType Observable<string | number>
   });
  
hunk.file_path: spec-dtslint/operators/publishReplay-spec.ts
hunk.type: add
file: html, body {
      height: 100%;
  }
  
  body {
      background-color: $offwhite;
  }
  
  .clearfix {
      content: "";
      display: table;
      clear: both;
  }
  
  .clear {
      clear: both;
  }
  
  .l-clearfix:after, .clearfix:after {
      content: "";
      display: table;
      clear: both;
  }
  
  .is-visible {
      display: block!important;
  }
  
  .l-flex-wrap {
    display: flex;
    flex-wrap: wrap;
  }
  
  .flex-center {
      display: flex;
      justify-content: center;
  }
  
  .center {
      text-align: center;
  }
  
  .visually-hidden {
      position: absolute !important;
      top: -9999px !important;
      left: -9999px !important;
  }
  
  .text-uppercase {
    text-transform: uppercase;
  }