首页 > 解决方案 > 模块扩充中不允许导出和导出分配。默认导出

问题描述

我一直在尝试将我的一个项目转换为 Typescript,并且遇到了我正在使用的一个节点模块(称为 Cachegoose)的问题。不幸的是,维护者一年多没有回复问题,所以我试图自己修改类型,以便构建我的应用程序。

尝试构建我的应用程序时,出现错误

模块扩充中不允许导出和导出分配。

这来自这个打字稿声明文件。我尝试了各种方法,例如导出命名空间和删除export = cachegoose;行,但这并不符合我的需要。使用时,import cachegoose from 'cachegoose';我应该能够使用默认导出作为函数。cachegoose()(基本上是顶级函数声明)。我也应该能够使用基于此默认导出的功能 clearCache ,例如cachegoose.clearCache(). 我对 Typescript 很陌生,并且一直在阅读文档并尝试对如何导出命名空间和函数进行各种更改,但没有取得任何成功。

declare module 'cachegoose' {

    function cachegoose(mongoose: Mongoose, cacheOptions: cachegoose.Types.IOptions): void;

    namespace cachegoose {
        namespace Types {
            interface IOptions {
                engine?: string
                port?: number
                host?: string
                password?: string,
                client?: any,
            }
        }

        function clearCache(customKey: any, cb: any): void;
    }

    export = cachegoose;

}

标签: javascripttypescriptmongoose

解决方案


推荐阅读