Skip to content

Commit 67cb317

Browse files
authoredJan 11, 2022
fix: operators that ignore input values now use unknown rather than any, which should resolve issues with eslint no-unsafe-argument (#6738)
* fix: use "unknown" type for operators that ignore input values These operators ignore the values produced by the source Observable, so they don't need the dynamic typing that "any" would provide for accessing the values. Using "unknown" instead of "any" avoids warnings from eslint rules like @typescript-eslint/no-unsafe-argument in application code that uses the operators, and it's also a clearer way to express that the operators don't know or care what the source type is. resolves #6536 * fix: update api_guard files to reflect intentional API change
1 parent 45abd01 commit 67cb317

File tree

7 files changed

+22
-22
lines changed

7 files changed

+22
-22
lines changed
 

‎api_guard/dist/types/index.d.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ export declare function concatMap<T, O extends ObservableInput<any>>(project: (v
108108
export declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
109109
export declare function concatMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
110110

111-
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
112-
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<any, ObservedValueOf<O>>;
111+
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
112+
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<unknown, ObservedValueOf<O>>;
113113
export declare function concatMapTo<T, R, O extends ObservableInput<unknown>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
114114

115115
export declare function concatWith<T, A extends readonly unknown[]>(...otherSources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>;
@@ -314,7 +314,7 @@ export declare type Head<X extends readonly any[]> = ((...args: X) => any) exten
314314

315315
export declare function identity<T>(x: T): T;
316316

317-
export declare function ignoreElements(): OperatorFunction<any, never>;
317+
export declare function ignoreElements(): OperatorFunction<unknown, never>;
318318

319319
export declare function iif<T, F>(condition: () => boolean, trueResult: ObservableInput<T>, falseResult: ObservableInput<F>): Observable<T | F>;
320320

@@ -340,7 +340,7 @@ export declare function lastValueFrom<T>(source: Observable<T>): Promise<T>;
340340
export declare function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;
341341
export declare function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;
342342

343-
export declare function mapTo<R>(value: R): OperatorFunction<any, R>;
343+
export declare function mapTo<R>(value: R): OperatorFunction<unknown, R>;
344344
export declare function mapTo<T, R>(value: R): OperatorFunction<T, R>;
345345

346346
export declare function materialize<T>(): OperatorFunction<T, Notification<T> & ObservableNotification<T>>;
@@ -358,7 +358,7 @@ export declare function mergeMap<T, O extends ObservableInput<any>>(project: (va
358358
export declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
359359
export declare function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
360360

361-
export declare function mergeMapTo<O extends ObservableInput<unknown>>(innerObservable: O, concurrent?: number): OperatorFunction<any, ObservedValueOf<O>>;
361+
export declare function mergeMapTo<O extends ObservableInput<unknown>>(innerObservable: O, concurrent?: number): OperatorFunction<unknown, ObservedValueOf<O>>;
362362
export declare function mergeMapTo<T, R, O extends ObservableInput<unknown>>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
363363

364364
export declare function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent?: number): OperatorFunction<T, R>;
@@ -729,8 +729,8 @@ export declare function switchMap<T, O extends ObservableInput<any>>(project: (v
729729
export declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
730730
export declare function switchMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
731731

732-
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
733-
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<any, ObservedValueOf<O>>;
732+
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
733+
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<unknown, ObservedValueOf<O>>;
734734
export declare function switchMapTo<T, R, O extends ObservableInput<unknown>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
735735

736736
export declare function switchScan<T, R, O extends ObservableInput<any>>(accumulator: (acc: R, value: T, index: number) => O, seed: R): OperatorFunction<T, ObservedValueOf<O>>;

‎api_guard/dist/types/operators/index.d.ts

+7-7
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ export declare function concatMap<T, O extends ObservableInput<any>>(project: (v
4545
export declare function concatMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
4646
export declare function concatMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
4747

48-
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
49-
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<any, ObservedValueOf<O>>;
48+
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
49+
export declare function concatMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<unknown, ObservedValueOf<O>>;
5050
export declare function concatMapTo<T, R, O extends ObservableInput<unknown>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
5151

5252
export declare function concatWith<T, A extends readonly unknown[]>(...otherSources: [...ObservableInputTuple<A>]): OperatorFunction<T, T | A[number]>;
@@ -144,7 +144,7 @@ export interface GroupByOptionsWithElement<K, E, T> {
144144
element: (value: T) => E;
145145
}
146146

147-
export declare function ignoreElements(): OperatorFunction<any, never>;
147+
export declare function ignoreElements(): OperatorFunction<unknown, never>;
148148

149149
export declare function isEmpty<T>(): OperatorFunction<T, boolean>;
150150

@@ -157,7 +157,7 @@ export declare function last<T, D = T>(predicate: (value: T, index: number, sour
157157
export declare function map<T, R>(project: (value: T, index: number) => R): OperatorFunction<T, R>;
158158
export declare function map<T, R, A>(project: (this: A, value: T, index: number) => R, thisArg: A): OperatorFunction<T, R>;
159159

160-
export declare function mapTo<R>(value: R): OperatorFunction<any, R>;
160+
export declare function mapTo<R>(value: R): OperatorFunction<unknown, R>;
161161
export declare function mapTo<T, R>(value: R): OperatorFunction<T, R>;
162162

163163
export declare function materialize<T>(): OperatorFunction<T, Notification<T> & ObservableNotification<T>>;
@@ -175,7 +175,7 @@ export declare function mergeMap<T, O extends ObservableInput<any>>(project: (va
175175
export declare function mergeMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined, concurrent?: number): OperatorFunction<T, ObservedValueOf<O>>;
176176
export declare function mergeMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
177177

178-
export declare function mergeMapTo<O extends ObservableInput<unknown>>(innerObservable: O, concurrent?: number): OperatorFunction<any, ObservedValueOf<O>>;
178+
export declare function mergeMapTo<O extends ObservableInput<unknown>>(innerObservable: O, concurrent?: number): OperatorFunction<unknown, ObservedValueOf<O>>;
179179
export declare function mergeMapTo<T, R, O extends ObservableInput<unknown>>(innerObservable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R, concurrent?: number): OperatorFunction<T, R>;
180180

181181
export declare function mergeScan<T, R>(accumulator: (acc: R, value: T, index: number) => ObservableInput<R>, seed: R, concurrent?: number): OperatorFunction<T, R>;
@@ -300,8 +300,8 @@ export declare function switchMap<T, O extends ObservableInput<any>>(project: (v
300300
export declare function switchMap<T, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: undefined): OperatorFunction<T, ObservedValueOf<O>>;
301301
export declare function switchMap<T, R, O extends ObservableInput<any>>(project: (value: T, index: number) => O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
302302

303-
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
304-
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<any, ObservedValueOf<O>>;
303+
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
304+
export declare function switchMapTo<O extends ObservableInput<unknown>>(observable: O, resultSelector: undefined): OperatorFunction<unknown, ObservedValueOf<O>>;
305305
export declare function switchMapTo<T, R, O extends ObservableInput<unknown>>(observable: O, resultSelector: (outerValue: T, innerValue: ObservedValueOf<O>, outerIndex: number, innerIndex: number) => R): OperatorFunction<T, R>;
306306

307307
export declare function switchScan<T, R, O extends ObservableInput<any>>(accumulator: (acc: R, value: T, index: number) => O, seed: R): OperatorFunction<T, ObservedValueOf<O>>;

‎src/internal/operators/concatMapTo.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
33
import { isFunction } from '../util/isFunction';
44

55
/* tslint:disable:max-line-length */
6-
export function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
6+
export function concatMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
77
/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */
88
export function concatMapTo<O extends ObservableInput<unknown>>(
99
observable: O,
1010
resultSelector: undefined
11-
): OperatorFunction<any, ObservedValueOf<O>>;
11+
): OperatorFunction<unknown, ObservedValueOf<O>>;
1212
/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */
1313
export function concatMapTo<T, R, O extends ObservableInput<unknown>>(
1414
observable: O,

‎src/internal/operators/ignoreElements.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { noop } from '../util/noop';
3838
* `complete` or `error`, based on which one is called by the source
3939
* Observable.
4040
*/
41-
export function ignoreElements(): OperatorFunction<any, never> {
41+
export function ignoreElements(): OperatorFunction<unknown, never> {
4242
return operate((source, subscriber) => {
4343
source.subscribe(new OperatorSubscriber(subscriber, noop));
4444
});

‎src/internal/operators/mapTo.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { OperatorFunction } from '../types';
22
import { map } from './map';
33

4-
export function mapTo<R>(value: R): OperatorFunction<any, R>;
4+
export function mapTo<R>(value: R): OperatorFunction<unknown, R>;
55
/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */
66
export function mapTo<T, R>(value: R): OperatorFunction<T, R>;
77

@@ -37,6 +37,6 @@ export function mapTo<T, R>(value: R): OperatorFunction<T, R>;
3737
* @return A function that returns an Observable that emits the given `value`
3838
* every time the source Observable emits.
3939
*/
40-
export function mapTo<R>(value: R): OperatorFunction<any, R> {
40+
export function mapTo<R>(value: R): OperatorFunction<unknown, R> {
4141
return map(() => value);
4242
}

‎src/internal/operators/mergeMapTo.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { isFunction } from '../util/isFunction';
66
export function mergeMapTo<O extends ObservableInput<unknown>>(
77
innerObservable: O,
88
concurrent?: number
9-
): OperatorFunction<any, ObservedValueOf<O>>;
9+
): OperatorFunction<unknown, ObservedValueOf<O>>;
1010
/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */
1111
export function mergeMapTo<T, R, O extends ObservableInput<unknown>>(
1212
innerObservable: O,

‎src/internal/operators/switchMapTo.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ import { ObservableInput, OperatorFunction, ObservedValueOf } from '../types';
33
import { isFunction } from '../util/isFunction';
44

55
/* tslint:disable:max-line-length */
6-
export function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<any, ObservedValueOf<O>>;
6+
export function switchMapTo<O extends ObservableInput<unknown>>(observable: O): OperatorFunction<unknown, ObservedValueOf<O>>;
77
/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */
88
export function switchMapTo<O extends ObservableInput<unknown>>(
99
observable: O,
1010
resultSelector: undefined
11-
): OperatorFunction<any, ObservedValueOf<O>>;
11+
): OperatorFunction<unknown, ObservedValueOf<O>>;
1212
/** @deprecated The `resultSelector` parameter will be removed in v8. Use an inner `map` instead. Details: https://rxjs.dev/deprecations/resultSelector */
1313
export function switchMapTo<T, R, O extends ObservableInput<unknown>>(
1414
observable: O,

0 commit comments

Comments
 (0)
Please sign in to comment.