Skip to content

Shadowed type generic in doc; Inherit doc type generic from class #2639

Closed
@P1X3

Description

@P1X3

I think the following line that specifies doc return type should be updated as it is shadowed from Line 41.

doc<T>(path?: string): AngularFirestoreDocument<T> {

Essentially here is what is happening:
db.collection<Location>('locations').doc('someid').valueChanges(); // Returns Observable<unknown>
db.collection<Location>('locations').doc<Location>('someid').valueChanges(); // Returns Observable<Location>

Ideally, I think this would be more desirable result since type passed to collection call would pass down to doc call:
db.collection<Location>('locations').doc('someid').valueChanges(); // Returns Observable<Location>
db.collection<Location>('locations').doc<Location>('someid').valueChanges(); // Returns Observable<Location>

If I am not mistaken, updating the code to following will produce more desirable result (IMHO), and provide fallback if any projects out there had different type in collection and doc calls.

doc<T2 = T>(path?: string): AngularFirestoreDocument<T2> {
return new AngularFirestoreDocument<T2>(this.ref.doc(path), this.afs);
}

Related issues: #1254
PR that resolved the issue: #1286

P.S. Pardon formatting. I do not contribute enough, or at all, to know the proper code of conduct, but figured this issue might still be considered for a fix.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions