angular / angular/angularfire

compilation errors every time a new version of firebase is used

Đang mở
#3,245 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
TypeScript
Star
7.8k
Fork
2.2k
Merge trung bình
22 giờ 28 phút
Pull request đã merge (30 ngày)
6

Mô tả

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](https://github.com/jnizet/decouvertes-nature/pull/282), 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'.
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

```ts
export interface Animator {
name: string;
}

// ...
private animatorCollection: CollectionReference;
// ...
suggestAnimators(text: string): Observable> {
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.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với src/app/activity/activity.service.ts và tái hiện lỗi biên dịch bằng cách nâng cấp Firebase trong khi vẫn giữ lại yarn.lock. So sánh việc phân giải dependency trước và sau khi xóa yarn.lock, sau đó xác định hành vi dependency tương thích hoặc thay đổi cần thiết trong project để ví dụ biên dịch nhất quán sau các lần nâng cấp Firebase.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
angular, typescript
Lĩnh vực
database, frontend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.