angularfire icon indicating copy to clipboard operation
angularfire copied to clipboard

compilation errors every time a new version of firebase is used

Open jnizet opened this issue 2 years ago • 1 comments

I'm sorry if this issue doesn't actually have anything to do with Angularfire, and if it looks more like a question than an actual issue. Feel free to close this issue if you feel it doesn't belong here.

I use yarn and have configured renovate bot on my project. So every time a new version of Firebase is released, it makes a commit which upgrades the version. And almost every time it does that (like in this PR, which upgrades from firebase 9.8.4 to firebase 9.9.0), the code, which compiled fine before, dosn't compile anymore, with errors such as the following one:

Error: Error: src/app/activity/activity.service.ts:185:5 - error TS2322: Type 'Observable<(string | FieldValue)[]>' is not assignable to type 'Observable<string[]>'.
  Type '(string | FieldValue)[]' is not assignable to type 'string[]'.
    Type 'string | FieldValue' is not assignable to type 'string'.
      Type 'FieldValue' is not assignable to type 'string'.
185     return collectionData(this.animatorCollection).pipe(
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
186       first(),
    ~~~~~~~~~~~~~~
... 
193       )
    ~~~~~~~
194     );

for code looking like

export interface Animator {
  name: string;
}

// ...
  private animatorCollection: CollectionReference<Animator>;
// ...
  suggestAnimators(text: string): Observable<Array<string>> {
    const query = text.toLowerCase();
    return collectionData(this.animatorCollection).pipe(
      first(),
      map(animators =>
        animators
          .filter(a => a.name.toLowerCase().includes(query))
          .map(a => a.name)
          .sort()
          .slice(0, 10)
      )
    );
  }

So suddenly, for a reason that I ignore, the compiler doesn't infer the types correctly.

The fix is relatively simple: delete the yarn.lock file, and run yarn again.

But I wonder what I should do to avoid having to do that every time, and would like to understand why this strange behavior happens.

jnizet avatar Jul 08 '22 09:07 jnizet

This issue does not seem to follow the issue template. Make sure you provide all the required information.

google-oss-bot avatar Jul 08 '22 09:07 google-oss-bot