Angular 12 forkJoin deprecated because misinterpreted object type

Viewed 242

I'm trying to call forkJoin with a dictionary, taking example from the docs

import {
    forkJoin,
    of,
    timer
} from 'rxjs';


/*.....*/


const observable = forkJoin({
    foo: of(1, 2, 3, 4),
    bar: Promise.resolve(8),
    baz: timer(4000),
});
observable.subscribe({
    next: value => console.log(value),
    complete: () => console.log('This is how it ends!'),
});

But I'm getting a warning that the method is deprecated. I guess this is because the type of the object I pass to forkJoin is interpreted wrong - jumping to declaration shows

export function forkJoin<A extends readonly unknown[]>(...sources: [...ObservableInputTuple<A>]): Observable<A>;

not the

// forkJoin({a, b, c})
export function forkJoin(sourcesObject: { [K in any]: never }): Observable<never>;
export function forkJoin<T extends Record<string, ObservableInput<any>>>(
  sourcesObject: T
): Observable<{ [K in keyof T]: ObservedValueOf<T[K]> }>;

The warning deprecation warning

Calling a method with array works fine.

How can I fix this?

Libraries used:

  "dependencies": {
    "@akveo/ng2-completer": "^9.0.1",
    "@angular/animations": "~12.0.3",
    "@angular/cdk": "^12.0.4",
    "@angular/common": "~12.0.3",
    "@angular/compiler": "~12.0.3",
    "@angular/core": "~12.0.3",
    "@angular/forms": "~12.0.3",
    "@angular/platform-browser": "~12.0.3",
    "@angular/platform-browser-dynamic": "~12.0.3",
    "@angular/router": "~12.0.3",
    "rxjs": "~7.2.0",
    "tslib": "^2.1.0",
    "zone.js": "~0.11.4"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~12.0.3",
    "@angular/cli": "~12.0.3",
    "@angular/compiler-cli": "~12.0.3",
    "@types/jasmine": "~3.6.0",
    "@types/node": "^12.11.1",
    "jasmine-core": "~3.7.0",
    "karma": "~6.3.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage": "~2.0.3",
    "karma-jasmine": "~4.0.0",
    "karma-jasmine-html-reporter": "^1.5.0",
    "typescript": "~4.2.3"
  }
0 Answers
Related