javascript - 模块扩充中不允许导出和导出分配。默认导出
问题描述
我一直在尝试将我的一个项目转换为 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;
}
解决方案
推荐阅读
- javascript - 将 mathjs 作为 JavaScript 模块导入失败
- vue.js - 在子目录中部署带有 IIS 的 vue.js 应用程序,无需重新构建
- c# - 如何在 Windows 上从 .NET Core 执行/调用并行程序集?
- swift - 如何结合这两种异步方法的结果?
- node.js - 使用sequelize比较节点js中的日期
- python-3.x - NameError:名称“pyotp”未定义
- php - 如何等待完成递归循环然后只回显?
- excel - “查找”命令的表达式
- authentication - 从 MS Graph 中获取具有客户端 ID 和秘密 C# 的组
- search - 如何仅搜索到文档末尾/在文档末尾被警告?(自由办公室)