это ключевое слово для параметра функции

#typescript #rxjs

Вопрос:

Недавно, когда я использую Rxjs 5, я загрузил Rxjs с помощью установки npm Rxjs@5.0.1, из загруженного кода в разделе node_modules я нашел Observable.d.ts в папке Rxjs, я видел, как он объявляет свой конструктор, как показано ниже:

  *
 * @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);
 

Мой вопрос: каково использование этого ключевого слова в объявлении типа функции subscribe?: (это: Наблюдаемо, …), Есть ли у TypeScript какая-либо документация для использования этого ключевого слова, как здесь? Спасибо.

Ответ №1:

Вы можете (начиная с версии 2.0 typescript) указать, что this вы ожидаете при вызове функции.

Как описано в разделе Указание типа этого для функций:

После указания типа этого в классе или интерфейсе функции и методы теперь могут объявлять тип этого, который они ожидают.

По умолчанию тип этого внутри функции-любой. Начиная с TypeScript 2.0, вы можете указать явный этот параметр. эти параметры являются поддельными параметрами, которые стоят первыми в списке параметров функции

Обратите внимание, что это не будет переведено в js, поэтому это не настоящий аргумент в функции.

Комментарии:

1. Спасибо, помогите мне найти документацию.