如何将函数添加到名称空间



我有一个基于 lunrlunr-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;
}

相关内容

  • 没有找到相关文章

最新更新