Объявление библиотеки JS для использования с TypeScript
Есть много тем для подобных проблем, но, насколько я могу судить, это уникально.
Я использую плагин jQuery Address в своем приложении и хотел бы использовать его в файле TypeScript. К сожалению, для библиотеки нет доступного скрипта. Когда я пытаюсь использовать jQuery.address, я получаю:
The property 'address' does not exist on value of type 'jQueryStatic'
В этой теме я попытался определить address
Внутри jquery.d.ts
:
interface JQueryStatic {
address(options): any;
...
}
И я думаю, что это работает для $.address(); но не для любого из методов адресации. Я также пытался создать свой собственный файл.d.ts для этой темы, но все же не повезло. И я попытался с помощью declare
в файле.d.ts. Неудачно.
Единственный метод, который мне нужно использовать, это parameter
метод...
$.address.parameter('param', 1);
В этом случае я получаю:
The property 'parameter' does not exist on value of type 'address'
Любые идеи о том, как я могу решить эту проблему?
редактировать: я работаю в среде Visual Studio C# .net, если это помогает.
2 ответа
Вам не нужно редактировать jquery.d.ts
сам; поместите эти определения в свой собственный файл, чтобы их можно было правильно поддерживать. Что-то минимальное будет так:
// For methods on e.g. $('a')
interface JQuery {
address(callback?: () => void): JQuery;
}
// For methods on $
interface JQueryStatic {
address: JQueryAddressStatic;
}
interface JQueryAddressStatic {
(): JQuery;
parameter(name: string): string;
parameter(name: string, value: string, append?: boolean): JQuery;
}
Следующее идет внутри jquery.d.ts
:
interface JQueryStatic {
address(options): JQueryAddress;
}
interface JQueryAddress {
parameter(name, value): any;
}
Надеюсь, это поможет!