javascript: 提供的参数与调用目标的任何签名都不匹配

javascript: Supplied parameters do not match any signature of call target

我正在尝试使用 typeahead.js 在 Angular2 应用程序中实现提前输入。在打字稿文件中,我添加了以下导入段。

import initTypeahead = require("../../../assets/js/init/dashboard.js");

dashboard.d.ts

declare function initTypeahead(data:any,id:any): void;
export = initTypeahead(data,id);

dashboard.js

if ('undefined' !== typeof module) {

  module.exports = function initTypeahead(data, element) {
    console.log(data);
    console.log(element);
    var _values = new Bloodhound({
      datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
      queryTokenizer: Bloodhound.tokenizers.whitespace,
      local: data
    });
    _values.initialize();

    var elt = $(element);
    elt.tagsinput({
      itemValue: 'code',
      itemText: 'value',
      typeaheadjs: {
        name: '_values',
        displayKey: 'value',
        source: _values.ttAdapter()
      }
    });
  }
}

然后在打字稿中添加以下行。

private getCities(): void {
  this.componentsService.getCriteriaValues(this.product, "city").subscribe(res => {
    initTypeahead(res.returnData, '#city'); // error at this line

  });


}

ng serve

上出现以下错误
Supplied parameters do not match any signature of call target.

非常感谢任何建议。

谢谢

如果您使用 Angular-CLI:

angular-cli.json:

"scripts": [
        "assets/js/init/dashboard.js"
 ],

你在哪里使用它:

import '../../../assets/js/init/dashboard.js';

declare function initTypeahead(data:any,id:any): void;

您首先需要从您的 angular-cli.json 加载 库,然后您可以实际将该代码导入您的组件以便使用它是方法、变量等