繁体   English   中英

如何为默认导出的类编写类型定义文件?

[英]How to write a type definition file for a default exported class?

我正在尝试为OpenSubtitles.org api节点包装器编写类型定义文件。 这是主文件index.js 在第7行, OpenSubtitles类将作为模块的默认导出导出。

module.exports = class OpenSubtitles {
....
}

所以我想出了以下

declare module "opensubtitles-api" {
  export default class OpenSubtitles {
  }
}

这是使用OpenSubtitles.org api node wrapper和我的.d.ts文件进行的代码转译。

"use strict";
exports.__esModule = true;
var opensubtitles_api_1 = require("opensubtitles-api");
var os = new opensubtitles_api_1["default"]({
    useragent: "TemporaryUserAgent"
});

当我运行它。 我得到这个错误。

var os = new opensubtitles_api_1["default"]({
         ^

TypeError: opensubtitles_api_1.default is not a constructor

当我删除已编译代码的["default"]部分时,所有工作均按预期进行。

所需的翻译

"use strict";
exports.__esModule = true;
var opensubtitles_api_1 = require("opensubtitles-api");
var os = new opensubtitles_api_1({
    useragent: "TemporaryUserAgent"
});

我应该如何导出/声明OpenSubtitles类?

默认导出与替换整个导出对象时不同。 其语法为:

declare module "opensubtitles-api" {
   class OpenSubtitles {
   }
   export = OpenSubtitles
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM