使用typeahead.js绝对键入文件

时间:2016-11-28 11:57:35

标签: typeahead.js typescript2.0

我刚刚下载了typeahead.js d.ts文件,但你到底该怎么用呢?

必须以这种格式编写选项对象:

let a:Twitter.Typeahead.Options = {};

但我如何定义来源?

这导致编译器错误 - :

let b:Twitter.Typeahead.Dataset<string> = 
{source:{query:'',syncResults:null,asyncResults:null}};

有人可以帮我解释语法吗?

编辑: 解决了它:

这是我在typescript中使用的代码:你需要jquery,用于$ .each()函数。

private sourceFactory(list: string[]):
        (query: string, syncResults: (results: string[]) => void) => void {
    return (query: string, syncResults: (results: string[]) => void) => {

        let matches: string[] = [];

        let regex: RegExp = new RegExp('^' + query, 'i');

        $.each(list, (i: number, str: string) => {
            if (regex.test(str)) {
                matches.push(str);
            }
        });

        syncResults(matches);
    }
}

1 个答案:

答案 0 :(得分:0)

引用您的文件,例如:

/// <reference path="Validation.ts" />

/// <reference path="./../Scripts/typings/foo.d.ts" />

请参阅:https://www.typescriptlang.org/docs/handbook/namespaces.html

1)将.d.ts文件放在tsconfig.json中,如下所述:Do I have to reference typescript definition in every file

2)尝试通过命名空间调用方法:

Twitter.Typeahead.callsomething()

或像

一样导入
import tah from 'foo'
import { default as tah } from 'foo'

你还需要下载jquery,因为这个库依赖它(查看.d.ts文件)。