.default不是将声明文件与javascript包一起使用的构造函数

时间:2018-09-25 11:47:20

标签: javascript typescript

我正在使用外部javascript程序包,该程序包没有默认的导出和声明文件。我本来想自己写一个,但是这样做之后,导入它时遇到了问题。 我编写声明文件的Javascript包如下所示:

function Speech() {
    // code
}

Speech.prototype.say = function (saying) {
    // code
};

module.exports = Speech;

我的声明文件:

declare class Speech() {
   constructor()
   say(saying: string): Speech
}
export default Speech

当我尝试使用如下所示的导入方式将此包导入.ts文件时:

import Speech from './index'

并尝试对其进行初始化:

const speech = new Speech()

我收到一个错误,说index_1.default is not a constructor

如果我使用其他导入方式导入模块,例如:

import Speech = require('./index')

它可以按预期工作并且不会引发任何错误。

是否可以以某种方式修复声明文件,以便我可以使用默认导入,而不必使用require?

还是在我的情况下使用import需要正确的方式?

谢谢

0 个答案:

没有答案