您好,我正在尝试在 TypeScript 和 Jquery 中执行“自动完成”。
this.$("#testAuto").autocomplete({
source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]
});
但是编译器无法在任何 d.ts 文件中找到自动完成功能。
**error TS2094: The property 'autocomplete does not exist on value of type 'JQuery'.**
我正在使用 Jquery v2。
请帮忙!!
最佳答案
您需要添加对 autocomplete.d.ts 文件的引用,例如:
/// <reference path="path/to/your/jquery.autocomplete.d.ts" />
尽管我怀疑您使用了错误的定义文件并且应该使用这个:https://github.com/borisyankov/DefinitelyTyped/blob/master/jqueryui/jqueryui.d.ts
它包含您需要的定义:
interface JQuery {
// ...
autocomplete(): JQuery;
autocomplete(methodName: string): JQuery;
autocomplete(methodName: 'close'): void;
autocomplete(methodName: 'destroy'): void;
autocomplete(methodName: 'disable'): void;
autocomplete(methodName: 'enable'): void;
autocomplete(methodName: 'search', value?: string): void;
autocomplete(methodName: 'widget'): JQuery;
autocomplete(options: JQueryUI.AutocompleteOptions): JQuery;
autocomplete(optionLiteral: string, optionName: string): any;
autocomplete(optionLiteral: string, options: JQueryUI.AutocompleteOptions): any;
autocomplete(optionLiteral: string, optionName: string, optionValue: any): JQuery;
// ...
}
更新:快速有用的解决方案 由于您使用的是 Bootstrap 版本,删除对 jquery.autocomplete.d.ts 和 jqueuryUI 的引用。在您的代码之前添加以下代码块:
interface JQuery{
autocomplete(config:{source:string[];});
}
关于javascript - 我如何在 Typescript 中进行自动完成?有 jquery.d.ts & jquery.autocomplete.d.ts 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17673615/