Я искал ответы на эту проблему, но не могу правильно их реализовать.Может быть, вы можете сказать мне правильный путь.
Я объясню: я хочу использовать дженерики машинописи, чтобы больше не использовать «Any» в моих методах.
Я пишу код ичто я хотел бы сделать.
В КОМПОНЕНТЕ:
this.DatabaseService.getCollection <IUser> ('users', 'lastname'). subscribe (loadData =>
{
this.listUser = loadData;
});
, когда я вызываю getCollection (), я буду вызывать следующие вложенные методы:
- getCollectionSnapshot ()
- getCollectionRef ()
Я хочу, чтобы тип (IUser), переданный в getCollection (), был перенаправлен нитидифицированным методам до достижения getCollectionRef () получение возвратной коллекции этого типа: collection
FILE SERVICE: database.service.ts
getCollection <T> (path: string, sortBy ?: string): Observable <T []>
{
// >>>how do I pass the type (T) to getCollectionSnapshot() ?
return this.getCollectionSnapshot (path, sortBy) .pipe (
map (changes =>
{
return changes.map (change =>
{
const data = change.payload.doc.data ();
const id = change.payload.doc.id;
return {id, ... data};
});
}
));
}
getCollectionSnapshot (path: string, sortBy ?: string): Observable <any []>
{
return this.getCollectionRef (path, sortBy) .snapshotChanges ();
}
getCollectionRef (path: string, sortBy ?: string): AngularFirestoreCollection
{
if (sortBy === undefined)
{
return this.afs.collection (path);
}
else
{
return this.afs.collection (path, ref => ref.orderBy (sortBy));
}
}
Спасибо!Я надеюсь восполнить пробел в дженериках