如何创建导出现有模块的 .d.ts 文件?

How to create a .d.ts file that exports an existing module?

我在我的 TypeScript 项目中同时使用 dust.js(特别是 dustjs-linkedin)和 dustjs-helpers。我从 definitelyTyped 中获取了 dustjs-linkedin 的类型,但我在使用 dustjs-helpers 时遇到了问题。差不多,我只想声明一个名为 dustjs-helpers 的模块并让它正确导出 dustjst-linkedin 模块。这意味着无论何时调用 import helpers = require('dustjs-helpers');,您都应该能够访问常规 dust 默认使用的所有功能。

Dust 的类型文件声明其模块如下:declare module "dustjs-linkedin" { ... }。我希望我可以做如下的事情,但是我得到了错误...

/// <reference path="../dustjs-linkedin/dustjs-linkedin.d.ts" />

declare module "dustjs-helpers" {
    import dust = require("dustjs-linkedin")
    export = dust;
}

谁能帮帮我?

有点复杂,但我已经证实这可行:

declare module "dustjs-helpers" {
    import dust = require("dustjs-linkedin")    

    // Bring into a type
    type Dust = typeof dust;

    // Specify extensions
    type Extensions = {
        anotherFunc : Function;
    }

    // Combine types
    type DustExtended = Dust & Extensions;

    // Create var for export
    var dustExtended: DustExtended;

    // Export
    export = dustExtended;
}