[英]How to write a type definition file for a default exported class?
I'm trying to write a type definition file for OpenSubtitles.org api node wrapper . 我正在尝试为OpenSubtitles.org api节点包装器编写类型定义文件。 Here is the main file index.js .
这是主文件index.js 。 On line 7 the
OpenSubtitles
class is exported as module's default export. 在第7行,
OpenSubtitles
类将作为模块的默认导出导出。
module.exports = class OpenSubtitles {
....
}
So i came up with the following 所以我想出了以下
declare module "opensubtitles-api" {
export default class OpenSubtitles {
}
}
This is the transpilation of a code using OpenSubtitles.org api node wrapper
and my .d.ts file. 这是使用
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"
});
and when i run it. 当我运行它。 I get this error.
我得到这个错误。
var os = new opensubtitles_api_1["default"]({
^
TypeError: opensubtitles_api_1.default is not a constructor
When i remove the ["default"]
part of the transpiled code everying work as expectd. 当我删除已编译代码的
["default"]
部分时,所有工作均按预期进行。
"use strict";
exports.__esModule = true;
var opensubtitles_api_1 = require("opensubtitles-api");
var os = new opensubtitles_api_1({
useragent: "TemporaryUserAgent"
});
How should i export/declare OpenSubtitles
class? 我应该如何导出/声明
OpenSubtitles
类?
Default exports are different from when you are replacing the whole export object. 默认导出与替换整个导出对象时不同。 The syntax for that is :
其语法为:
declare module "opensubtitles-api" {
class OpenSubtitles {
}
export = OpenSubtitles
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.