2016-11-27 117 views
2

我试图在angular2应用程序中导入fuse.js,但我得到一个异常(保险丝未定义)。 我也检查包中的定义文件(index.d.ts)。在Angular 2应用程序中使用fuse.js(打字稿)

我的打字稿类:

import 'fuse.js'; 

export class Myclass{ 

    /**some code*/ 

    public mySearchFunction(text, list, Opts){ 
    let fuseSearch = new Fuse(list, Opts); 
    let fuseResults: any[] = fuseSearch.search(text); 
    return fuseResults 
    } 

} 

我也试图与

import * as Fuse from 'fuse.js'; 

什么是使用这个库的正确方法?

+0

我做了一个角+ fusejs集成一个支持高亮匹配。这篇文章已近1年了,所以我想你已经找到了解决方案,但是我在这里放弃以防别人需要它: https://www.npmjs.com/package/angular-fusejs – leblma

回答

1

类型只在8天前添加到项目中。如果您查看here的最新NPM版本,您会发现不包括类型。

如果您无论是从master或抓取文件package.jsonindex.d.ts拉包,那么你就可以用import * as Fuse from 'fuse.js';

在控制台上来看,我仍然得到错误Cannot find module 'fuse.js'使用的包,但它的加工。不知道这是什么。

版本2.6.1得到被推到NPM昨天,它支持分型 - 见here

+1

它不会为我工作,我解决了重写fuse.js打字稿类。这是一个临时解决方案。 – Dag

+0

记住你的班级? 此外,直到新版本推到NPM的替代修复方法是添加'declare var Fuse:any;'您不会获得智能感知,但至少它会阻止TS引发编译错误。 – onetwothree

+1

你可以在这里找到[https://codepad.co/snippet/HrkAikGa]。变量没有正确的类型,但它的工作原理。正如我所说,这是一个临时解决方案 – Dag