javascript - 类模块的声明文件 (TypeScript)

标签 javascript node.js typescript

我使用的 Node 模块不是通过打字找到的,并且在definelytyped中也不存在。

该模块的基本用途是:

import * as SomeClass from 'some-module';

var someObject = new SomeClass("some string");
someObject.someMethod();

如您所见,该模块导出一个类作为其默认值。我还没弄清楚如何为其编写声明文件。

这是我能做到的最好的事情:

declare module 'some-module' {
    export default class SomeClass {
        constructor (someArg: string);
        someMethod(): void;
    }
}

顺便说一句,它确实可以 JavaScript 运行。只是 TypeScript 困扰着我。

有什么想法可以解决这个问题吗?

最佳答案

对于声明,您需要执行以下操作:

declare module 'some-module' {
    class SomeClass {
        constructor (someArg: string);
        someMethod(): void;
    }
    namespace SomeClass {}
    export = SomeClass;
}

更新:感谢 Blake Embrey 指出,需要 hack namespace SomeClass {} 才能使其正常工作。 请参阅https://github.com/Microsoft/TypeScript/issues/5073了解更多详情。

关于javascript - 类模块的声明文件 (TypeScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42980143/

相关文章:

php - this.push() 适用于 PHP 数据但不适用于 javascript 数据

node.js - 设置私有(private) NPM feed 并发布包

node.js - OAuth2 - 获得 token ,如何使用 POST 请求发送?

javascript - + 运算符覆盖而不是连接 Javascript 中的字符串

javascript - 对 Fluent UI Form onChange 不工作使用react(非常简单的代码)

javascript - 在具有另一个域的 iframe 上运行 javascript

javascript - 你如何通过 javascript include 获取 Url Referer?

javascript - Gridster 未捕获类型错误和可拖动

JavaScript Node.js 网页抓取 : How do I find specific elements on webpage table to scrape and push into an array of objects?

angular - 如何使用 ngx-charts 在 y 轴的值前面添加 $