Skip to content

Commit

Permalink
refactor(type): discard redundant ValueFromArray
Browse files Browse the repository at this point in the history
  • Loading branch information
demensky committed Mar 9, 2023
1 parent 667e185 commit 77bf38a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 9 deletions.
6 changes: 3 additions & 3 deletions src/internal/observable/of.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { SchedulerLike, ValueFromArray } from '../types';
import { SchedulerLike } from '../types';
import { Observable } from '../Observable';
import { popScheduler } from '../util/args';
import { scheduled } from '../scheduled/scheduled';
Expand All @@ -15,13 +15,13 @@ export function of(value: undefined): Observable<undefined>;
/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */
export function of(scheduler: SchedulerLike): Observable<never>;
/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled`. Details: https://rxjs.dev/deprecations/scheduler-argument */
export function of<A extends readonly unknown[]>(...valuesAndScheduler: [...A, SchedulerLike]): Observable<ValueFromArray<A>>;
export function of<A extends readonly unknown[]>(...valuesAndScheduler: [...A, SchedulerLike]): Observable<A[number]>;

export function of(): Observable<never>;
/** @deprecated Do not specify explicit type parameters. Signatures with type parameters that cannot be inferred will be removed in v8. */
export function of<T>(): Observable<T>;
export function of<T>(value: T): Observable<T>;
export function of<A extends readonly unknown[]>(...values: A): Observable<ValueFromArray<A>>;
export function of<A extends readonly unknown[]>(...values: A): Observable<A[number]>;

/**
* Converts the arguments to an observable sequence.
Expand Down
6 changes: 3 additions & 3 deletions src/internal/operators/endWith.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/** prettier */
import { subscribeToArray } from '../observable/from';
import { OperatorFunction, ValueFromArray } from '../types';
import { OperatorFunction } from '../types';
import { operate } from '../util/lift';
import { createOperatorSubscriber } from '../operators/OperatorSubscriber';

Expand Down Expand Up @@ -51,11 +51,11 @@ import { createOperatorSubscriber } from '../operators/OperatorSubscriber';
* source, then synchronously emits the provided value(s) immediately after the
* source completes.
*/
export function endWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>> {
export function endWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | A[number]> {
return operate((source, subscriber) => {
source.subscribe(
createOperatorSubscriber(subscriber, undefined, () => {
subscribeToArray(values as readonly ValueFromArray<A>[], subscriber);
subscribeToArray(values, subscriber);
})
);
});
Expand Down
6 changes: 3 additions & 3 deletions src/internal/operators/startWith.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { concat } from '../observable/concat';
import { OperatorFunction, SchedulerLike, ValueFromArray } from '../types';
import { OperatorFunction, SchedulerLike } from '../types';
import { popScheduler } from '../util/args';
import { operate } from '../util/lift';

Expand All @@ -14,8 +14,8 @@ export function startWith<T>(value: undefined): OperatorFunction<T, T | undefine
/** @deprecated The `scheduler` parameter will be removed in v8. Use `scheduled` and `concatAll`. Details: https://rxjs.dev/deprecations/scheduler-argument */
export function startWith<T, A extends readonly unknown[] = T[]>(
...valuesAndScheduler: [...A, SchedulerLike]
): OperatorFunction<T, T | ValueFromArray<A>>;
export function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>>;
): OperatorFunction<T, T | A[number]>;
export function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | A[number]>;

/**
* Returns an observable that, at the moment of subscription, will synchronously emit all
Expand Down
1 change: 1 addition & 0 deletions src/internal/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,7 @@ export type Tail<X extends readonly any[]> = ((...args: X) => any) extends (arg:
* Extracts the generic value from an Array type.
* If you have `T extends Array<any>`, and pass a `string[]` to it,
* `ValueFromArray<T>` will return the actual type of `string`.
* @deprecated Will be removed in v9 or v10. Use `T[number]` instead `ValueFromArray<T>`.
*/
export type ValueFromArray<A extends readonly unknown[]> = A extends Array<infer T> ? T : never;

Expand Down

0 comments on commit 77bf38a

Please sign in to comment.