hunk.code_window:   const path2 = ['bar', 'baz'];
     const b = of(obj).pipe(pluck('foo', ...path2)); // $ExpectType Observable<unknown>
   });
  
hunk.labels: keep keep keep add
hunk.after_edit: it('should support arrays', () => {
     const a = of(['abc']).pipe(pluck(0)) // $ExpectType Observable<string>
   })
   it('should support picking by symbols', () => {
     const sym = Symbol('sym')
     const a = of({ [sym]: 'abc' }).pipe(pluck(sym)) // $ExpectType Observable<string>
   })
hunk.file_path: spec-dtslint/operators/pluck-spec.ts
hunk.type: add
file: import { ObservableInput } from '../types';
  import { subscribeToArray } from './subscribeToArray';
  import { subscribeToPromise } from './subscribeToPromise';
  import { subscribeToIterable } from './subscribeToIterable';
  import { subscribeToObservable } from './subscribeToObservable';
  import { isArrayLike } from './isArrayLike';
  import { isPromise } from './isPromise';
  import { isObject } from './isObject';
  import { iterator as Symbol_iterator } from '../symbol/iterator';
  import { observable as Symbol_observable } from '../symbol/observable';
  import { Subscription } from '../Subscription';
  import { Subscriber } from '../Subscriber';
  import { subscribeToAsyncIterable } from './subscribeToAsyncIterable';
  
  export const subscribeTo = <T>(result: ObservableInput<T>): (subscriber: Subscriber<T>) => Subscription | void => {
    if (!!result && typeof (result as any)[Symbol_observable] === 'function') {
      return subscribeToObservable(result as any);
    } else if (isArrayLike(result)) {
      return subscribeToArray(result);
    } else if (isPromise(result)) {
      return subscribeToPromise(result);
    } else if (!!result && typeof (result as any)[Symbol_iterator] === 'function') {
      return subscribeToIterable(result as any);
    } else if (
      Symbol && Symbol.asyncIterator &&
      !!result && typeof (result as any)[Symbol.asyncIterator] === 'function'
    ) {
      return subscribeToAsyncIterable(result as any);
    } else {
      const value = isObject(result) ? 'an invalid object' : `'${result}'`;
      const msg = `You provided ${value} where a stream was expected.`
        + ' You can provide an Observable, Promise, Array, or Iterable.';
      throw new TypeError(msg);
    }
  };
  