/** 
 | 
 * This function takes one parameter and just returns it. Simply put, 
 | 
 * this is like `<T>(x: T): T => x`. 
 | 
 * 
 | 
 * ## Examples 
 | 
 * 
 | 
 * This is useful in some cases when using things like `mergeMap` 
 | 
 * 
 | 
 * ```ts 
 | 
 * import { interval, take, map, range, mergeMap, identity } from 'rxjs'; 
 | 
 * 
 | 
 * const source$ = interval(1000).pipe(take(5)); 
 | 
 * 
 | 
 * const result$ = source$.pipe( 
 | 
 *   map(i => range(i)), 
 | 
 *   mergeMap(identity) // same as mergeMap(x => x) 
 | 
 * ); 
 | 
 * 
 | 
 * result$.subscribe({ 
 | 
 *   next: console.log 
 | 
 * }); 
 | 
 * ``` 
 | 
 * 
 | 
 * Or when you want to selectively apply an operator 
 | 
 * 
 | 
 * ```ts 
 | 
 * import { interval, take, identity } from 'rxjs'; 
 | 
 * 
 | 
 * const shouldLimit = () => Math.random() < 0.5; 
 | 
 * 
 | 
 * const source$ = interval(1000); 
 | 
 * 
 | 
 * const result$ = source$.pipe(shouldLimit() ? take(5) : identity); 
 | 
 * 
 | 
 * result$.subscribe({ 
 | 
 *   next: console.log 
 | 
 * }); 
 | 
 * ``` 
 | 
 * 
 | 
 * @param x Any value that is returned by this function 
 | 
 * @returns The value passed as the first parameter to this function 
 | 
 */ 
 | 
export function identity<T>(x: T): T { 
 | 
  return x; 
 | 
} 
 |