Я использую плагин jquery, который не поставляется с файлами определения машинописи и не доступен на npm.
Я решил написать собственное определение (.d.ts
) для этого плагина. У меня это в основном работает, хотя есть один раздражающий аспект, который я хотел бы исправить (если это возможно).
Чтобы добавить метод плагина в интерфейс jquery, я объявляю следующее в отдельном файле .d.ts
:
import {Options} from "foo";
declare global {
interface JQuery {
foo(options: Options): JQuery;
}
}
Это приводит к тому, что метод foo
отображается в intellisense, даже если я не импортировал модуль. В идеале я бы хотел, чтобы он отображался только в том случае, если был импортирован модуль "foo".
Я пробовал несколько разных вещей, но ни одна из них, похоже, не работает:
- Объявление интерфейса внутри модуля foo (в том же файле, что и у foo
.d.ts
)
- Удалить
declare global {
- Поместите блок
declare global {
в файл foo .d.ts
, но за пределами оператора declare module
.