Typescript: vad är syftet med en första "this"-parameter?
Jag hittade signaturen för följande metod
export function retry<T>(this: Observable<T>, count: number = -1): Observable<T> {
return higherOrder(count)(this) as Observable<T>;
}
Där den första parametern är this och typad Observable<T>. Även om det verkar fel att ha this i argumenten, accepterar kompilatorn denna syntax och jag har sett detta mönster några gånger redan. Kan någon förklara vad dess syfte är?
Svar #1
Från dokumentationen:
Specificera typen av this för funktioner Som en fortsättning på att specificera typen av this i en klass eller ett gränssnitt, kan funktioner och metoder nu deklarera typen av this som de förväntar sig.
Som standard är typen av this inuti en funktion any. Från och med TypeScript 2.0 kan du ange en explicit this-parameter. this-parametrar är falska parametrar som kommer först i parameterlistan för en funktion:
function f(this: void) {
// make sure `this` is unusable in this standalone function
}
