我有一个基于 lunr
和 lunr-multilanguage
的node.js typecript应用程序。加载的@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")'.
我尝试添加(基于lunr index.d.ts
定义文件):
declare module "lunr" {
namespace lunr {
class Index {
multiLanguage(a: string, b: string): any;
}
}
}
导入LUNR模块之前或之后,错误仍然存在。Typescript文档说的是类型合并,但是在这里我看不到哪里看。谢谢!
如果查看lunr
定义文件,则可以看到:
export as namespace lunr;
export = lunr;
为了扩展它,您要声明:
declare namespace lunr
{
function multiLanguage(a: string, b: string): any;
}