Extending (mapped) tuple types
问题 When using tuple types in generic functions, how can you 'extend' the source type? Let's say we want to make a rxjs mapping operator that returns the source observable value(s) together with another mapped value: export function mapExtended<T, R>(mapping: (input: [T]) => R): OperatorFunction<[T], [T, R]>; export function mapExtended<T1, T2, R>(mapping: (input: [T1, T2]) => R): OperatorFunction<[T1, T2], [T1, T2, R]>; export function mapExtended<T1, T2, T3, R>(mapping: (input: [T1, T2, T3]) =>