typescript - palabra clave this para el parámetro de función
Recientemente, cuando uso Rxjs 5, descargué Rxjs usando npm install [email , del código descargado bajo node_modules, encontré Observable.d.ts en la carpeta de Rxjs, vi que declara su constructor de la siguiente manera:
*
* @constructor
* @param {Function} subscribe the function that is called when the Observable is
* initially subscribed to. This function is given a Subscriber, to which new values
* can be `next`ed, or an `error` method can be called to raise an error, or
* `complete` can be called to notify of a successful completion.
*/
constructor(subscribe?: <R>(this: Observable<T>, subscriber: Subscriber<R>) => TeardownLogic);
Mi pregunta es: ¿cuál es el uso de esta palabra clave en la declaración del tipo de función de subscribe?: (this: Observable, ...), ¿Tiene TypeScript alguna documentación sobre el uso de esta palabra clave como aquí? Gracias.
Respuesta #1
Puedes (desde la versión 2.0 de TypeScript) especificar cuál es el this que esperas cuando se invoca una función.
Como se describe en Especificando el tipo de esto para funciones:
Siguiendo con la especificación del tipo de this en una clase o en una interfaz, las funciones y métodos ahora pueden declarar el tipo de this que esperan.
Por defecto, el tipo de este dentro de una función es any. A partir de TypeScript 2.0, puedes proporcionar un parámetro this explícito. Los parámetros this son parámetros falsos que aparecen primero en la lista de parámetros de una función
Nota que esto no se traducirá a js, por lo que no es un argumento real en la función.