访问未导出的类型定义文件中的接口(@ types / cache-manager中的缓存接口)

时间:2018-09-04 19:12:19

标签: typescript typescript-typings

Type Definition file for @types/cache-manager具有以下定义:

interface Cache {
    del(key: string): Promise<any>;   
    // 11 other Method Signitures (removed for brevity)
}

还有:

declare namespace cacheManager {
    function caching(IConfig: StoreConfig): Cache;
    function multiCaching(Caches: Cache[]): Cache;
}

export = cacheManager;

我想在代码中使用Cache接口-但无法访问它(因为它没有导出)。我的问题是这样:

  • 作者是否有充分的理由不导出Cache接口?
  • 有什么办法可以强制导出此接口?

1 个答案:

答案 0 :(得分:1)

第一个问题:我会拒绝,但这只是我的意见。

第二个问题:我不知道有什么方法可以访问未导出的定义。但是,由于Cache是导出函数的返回类型,因此可以从那里提取它,例如:

import * as CacheManager from "cache-manager";
type Cache = ReturnType<typeof CacheManager.caching>;

您的另一种选择是使用Braid之类的工具将@types/cache-manager包派生到您的项目中(披露:我是Braid贡献者),将其注册为相对路径依赖项package.json,然后进行所需的任何更改。