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 Oct 27, 2023
1 parent 0bd47ea commit 6df25ca
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 7 deletions.
3 changes: 1 addition & 2 deletions packages/rxjs/src/internal/observable/of.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import { ValueFromArray } from '../types';
import { Observable } from '../Observable';
import { fromArrayLike } from './from';

Expand All @@ -12,7 +11,7 @@ export function of(value: undefined): Observable<undefined>;

export function of(): Observable<never>;
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 packages/rxjs/src/internal/operators/endWith.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/** prettier */
import { Observable } from '../Observable';
import { OperatorFunction, ValueFromArray } from '../types';
import { OperatorFunction } from '../types';
import { operate } from '../Subscriber';
import { subscribeToArray } from '../observable/from';

Expand Down Expand Up @@ -51,14 +51,14 @@ import { subscribeToArray } from '../observable/from';
* 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 (source) =>
new Observable((destination) => {
source.subscribe(
operate({
destination,
complete: () => {
subscribeToArray(values as readonly ValueFromArray<A>[], destination);
subscribeToArray(values, destination);
},
})
);
Expand Down
4 changes: 2 additions & 2 deletions packages/rxjs/src/internal/operators/startWith.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Observable } from '../Observable';
import { subscribeToArray } from '../observable/from';
import { operate } from '../Subscriber';
import { OperatorFunction, ValueFromArray } from '../types';
import { OperatorFunction } from '../types';

export function startWith<T>(value: null): OperatorFunction<T, T | null>;
export function startWith<T>(value: undefined): OperatorFunction<T, T | undefined>;
export function startWith<T, A extends readonly unknown[] = T[]>(...values: A): OperatorFunction<T, T | ValueFromArray<A>>;
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 packages/rxjs/src/internal/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -293,6 +293,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 6df25ca

Please sign in to comment.