【问题标题】:How to create a .d.ts file that exports an existing module?如何创建导出现有模块的 .d.ts 文件?
【发布时间】:2015-09-24 19:53:40
【问题描述】:

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

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

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

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

谁能帮帮我?

【问题讨论】:

  • 对不起,删除了我的答案,因为它与您想要的不太匹配。我不认为 TypeScript 具有适用于现有模块的类型机制。就此而言,您可能想要的只是一个.ts 文件,而不是定义文件;因为您希望这个实际模块以该名称可用(而不仅仅是看起来以该名称)。
  • 这对我来说很好编译。你是如何编译这个的,你得到了什么错误?它们是运行时错误,因为除了dustjs-helpers.d.ts之外没有运行时js文件吗?如果是这样,您可能正在寻找@Katana314 提到的内容,您应该创建一个名为dustjs-helpers.ts 的文件,然后在其中导入和导出“dustjs-linkedin”。

标签: javascript html typescript dust.js


【解决方案1】:

有点涉及,但我已经验证这可行:

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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2017-02-09
    • 2021-09-28
    • 2019-03-30
    • 1970-01-01
    • 2020-12-04
    • 1970-01-01
    相关资源
    最近更新 更多