我有一个基于lunr
和lunr-multilanguage
的Node.js打字稿应用程序。已加载@type/lunr
,但没有lunr-multilanguage
的类型定义。尝试在我的源代码中添加一些内容以满足编译器的要求。这是原始代码:
import lunr from "lunr";
require("lunr-languages/lunr.stemmer.support")(lunr);
require("lunr-languages/lunr.multi")(lunr);
require("lunr-languages/lunr.it")(lunr);
const englishItalianSupport = lunr.multiLanguage("en", "it");
打字稿抱怨:error TS2339: Property 'multiLanguage' does not exist on type 'typeof import("D:/Project/node_modules/@types/lunr/index.d.ts")'.
我尝试添加(基于lun index.d.ts
定义文件):
declare module "lunr" {
namespace lunr {
class Index {
multiLanguage(a: string, b: string): any;
}
}
}
在lunr导入之前或之后,但是错误仍然存在。 打字稿文档谈到了类型合并,但是在这里我看不到要看的地方。谢谢!
答案 0 :(得分:0)
如果您查看lunr
定义文件,则会看到:
export as namespace lunr;
export = lunr;
因此要扩展它,您需要声明:
declare namespace lunr
{
function multiLanguage(a: string, b: string): any;
}