/** | |
* 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; | |
} | |