【发布时间】:2016-12-18 21:14:53
【问题描述】:
我使用双向链表实现了“最近最少使用的缓存”(LRU 缓存)。链表由在LRUCache 类中使用的节点(Node 类)组成。
要导出我的模块,我使用以下模式:
export class Node { ... }
export class LRUCache { ... }
我正在将我的模块导出为 CommonJS 模块。使用上面的export class 模式,我可以通过以下方式使用我的模块:
var module = require('lru-cache');
var cache = new module.LRUCache();
没关系,但我不喜欢LRUCache 前面的附加“module.”部分。我想像这样使用我的 CommonJS 导出模块:
var LRUCache = require('lru-cache');
var cache = new LRUCache();
所以我把我的代码改成这样:
class Node { ... }
class LRUCache { ... }
export = LRUCache;
但现在 TypeScript 抱怨:
错误 TS4055:来自导出类的公共方法的返回类型已经或正在使用私有名称“节点”。
这是因为LRUCache使用了Node类,而Node在定义export = LRUCache;时没有导出。
我该如何解决这种情况?我正在使用 TypeScript 2.1。
截图:
【问题讨论】:
标签: javascript typescript module export commonjs