1

我有一个基于lunrand的 Node.js 打字稿应用程序lunr-multilanguage。已加载@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")'.

我尝试添加(基于lunrindex.d.ts定义文件):

declare module "lunr" {
    namespace lunr {
        class Index {
            multiLanguage(a: string, b: string): any;
        }
    }
}

在 lunr 模块导入之前或之后,但错误仍然存​​在。打字稿文档谈到类型合并,但在这里我看不到在哪里看。谢谢!

4

1 回答 1

0

如果您查看lunr定义文件,您可以看到:

export as namespace lunr;
export = lunr;

因此,要扩展它,您声明:

declare namespace lunr
{
    function multiLanguage(a: string, b: string): any;
}
于 2019-02-21T17:00:04.063 回答