Wie es in den Kommentaren gesagt wurde, ist es eine Typoskript Syntax Aspekt, aber auch in Ihrem Fall verwenden Sie RxJS Observable, die eine Implementierung der Observer Design Pattern ist.
Erste von allen, Typescript's generics. Lassen Sie uns auf eine intuitivere Weise darüber sprechen.
class List<T> {
private _list: T[] = [];
public get(index: number): T {
return this._list[index];
}
public add(item: T) {
return this._list.push(item);
}
}
Damit Sie List
aller T
Arten erstellen:
let myStrings = new List<String>();
let myNumber = new List<number>();
let myDates = new List<Date>();
und die Arbeit mit einem richtigen typisierte Methode:
myStrings.add("foo"); // it'll require a string type
myStrings.get(0); // returns "foo", a string typed var
nun über die RxJS Obserable<T>
, es ist so ziemlich das Gleiche Sache, die generische T
ist der Objekttyp, mit dem Sie arbeiten werden. Observables werden hauptsächlich verwendet, um das Abhören von asynchronen Ereignissen zu steuern, wenn ein Teil Ihres Codes benachrichtigt werden muss, wenn etwas passiert. Zum Beispiel: wenn die Ajax-Anfrage endet, wenn ein Element angeklickt wird oder wenn ein Timeout endet.
let userObservable = new Observable<User> .....
userObservable.subscribe(user => {
console.log(user); // [User object], the user param will be typed to the Class User
});
Sie zeichnen grundsätzlich zu einer beobachtbaren, die T
mit einem Objekt vom Typ arbeiten.
Es ist die Definition des Typs, den das Observable als seinen Wert hält. – danatcofo
Es ist eine Art Script-Sache. Mit dieser Syntax weisen Sie den TS-Compiler an, den angegebenen Typ als Ergebnis zu erwarten. Observable ist ein sogenanntes [TypeScript generic] (https://www.typescriptlang.org/docs/handbook/generics.html) und erfordert, dass Sie einen Typ als Argument übergeben. – Sasxa