1

嗨,我正在尝试在 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。

请帮忙 !!

4

1 回答 1

2

您需要添加对 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;

    // ... 
}

更新:快速有用的解决方案由于您使用的是引导版本,请删除对 j​​query.autocomplete.d.ts 和 jqueuryUI 的引用。并且在您的代码之前有以下块:

interface JQuery{
   autocomplete(config:{source:string[];});
}
于 2013-07-16T10:21:41.887 回答