import { OperatorFunction } from 'rxjs' ; import { pluck as plucker } from 'rxjs/operators' ; /**
 * Strong typed pluck function to replace
 * rxjs/operators/pluck
 *
 * Accept max 4 properties name
 */ export function pluck < A , B extends keyof A > ( s1 ) ; export function pluck < A , B extends keyof A , C extends keyof A [ B ] > ( s1 , s2 ) ; export function pluck < A , B extends keyof A , C extends keyof A [ B ] , D extends keyof A [ B ] [ C ] > ( s1 , s2 , s3 ) ; export function pluck < A , B extends keyof A , C extends keyof A [ B ] , D extends keyof A [ B ] [ C ] , E extends keyof A [ B ] [ C ] [ D ] > ( s1 , s2 , s3 , s4 ) ; export function pluck < A , B extends keyof A , C extends keyof A [ B ] , D extends keyof A [ B ] [ C ] , E extends keyof A [ B ] [ C ] [ D ] , F extends keyof A [ B ] [ C ] [ D ] [ E ] > ( s1 , s2 , s3 , s4 , s5 ) ; export function pluck < A , B extends keyof A , C extends keyof A [ B ] , D extends keyof A [ B ] [ C ] , E extends keyof A [ B ] [ C ] [ D ] , F extends keyof A [ B ] [ C ] [ D ] [ E ] , G extends keyof A [ B ] [ C ] [ D ] [ E ] [ F ] > ( s1 , s2 , s3 , s4 , s5 , s6 ) ; export function pluck < T , V > ( ... props ) ; export function pluck < T , V > ( ... props ) { return plucker < T , V > ( ... props ) ; }