Ваш пример выглядит хорошо, это также правильный способ дополнить модуль .
Расширение модуля = уже есть объявление типа данного пакета npm, предоставленное сопровождающими пакета, которое вы хотите расширить.Здесь важно иметь export
/ import
на верхнем уровне для назначения файла в области видимости модуля, иначе компилятор будет ожидать объявление окружающего модуля (нет существующего определения типа пакета).
Нет необходимости вручную включать определения типов вручную (я думаю, в прошлом это можно было сделать с помощью директив тройной косой черты , вы не используете import
для глобальных деклараций).В настоящее время компилятор использует Автоматическое включение (хотя я не совсем уверен относительно различных конфигураций Angular):
Если "files" и "include" оба не указаны, компиляторпо умолчанию включаются все файлы TypeScript (.ts, .d.ts и .tsx) в каталог и подкаталоги, за исключением тех, которые исключены с использованием свойства exclude.
Последний совет по использованию RxJS:Вы можете импортировать Observable
непосредственно из корня пакета (см. здесь для примера в документации по RxJS v6), например,
import { Observable } from "rxjs"
, поэтому вам не нужно полагаться навнутренняя комплектация.
import {Observable} from "rxjs"
declare module "rxjs" {
interface Observable<T> {
subscribeAndLog: (a: string) => void
}
}
Ура, надеюсь, это поможет.