如何为默认导出的 class 编写类型定义文件?
How to write a type definition file for a default exported class?
我正在尝试为 OpenSubtitles.org api node wrapper. Here is the main file index.js 编写类型定义文件。在第 7 行,OpenSubtitles
class 被导出为模块的默认导出。
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"
});
我该如何export/declareOpenSubtitles
class?
默认导出与替换整个导出对象时不同。语法是:
declare module "opensubtitles-api" {
class OpenSubtitles {
}
export = OpenSubtitles
}
我正在尝试为 OpenSubtitles.org api node wrapper. Here is the main file index.js 编写类型定义文件。在第 7 行,OpenSubtitles
class 被导出为模块的默认导出。
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"
});
我该如何export/declareOpenSubtitles
class?
默认导出与替换整个导出对象时不同。语法是:
declare module "opensubtitles-api" {
class OpenSubtitles {
}
export = OpenSubtitles
}