Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Typescript 杰斯特不认识我的习惯打字_Typescript_Webpack_Jestjs - Fatal编程技术网

Typescript 杰斯特不认识我的习惯打字

Typescript 杰斯特不认识我的习惯打字,typescript,webpack,jestjs,Typescript,Webpack,Jestjs,我有一个typescript项目,它需要一个个人库,该库是从作为commonjs库构建的git repo添加到我的package.json中的。当我运行我的构建脚本./node\u modules/.bin/webpack-d-config webpack/webpack.dev.js时,一切都正确编译。但是,当我运行jest jest-config front/jest.config.js时,它会抛出以下错误: ● Test suite failed to run TypeError: dum

我有一个typescript项目,它需要一个个人库,该库是从作为commonjs库构建的git repo添加到我的package.json中的。当我运行我的构建脚本./node\u modules/.bin/webpack-d-config webpack/webpack.dev.js时,一切都正确编译。但是,当我运行jest jest-config front/jest.config.js时,它会抛出以下错误:

● Test suite failed to run
TypeError: dumblib_1.default is not a constructor

12 | const dumblib = new DumbLib(vars)
当进入lib的入口点时,它只是一个从es6编译到commonjs的节点项目,bundle在文件末尾显示:

module.exports = DumbLib;
lib不是typescript,因此我在主项目中有一个用于dumblib导入的typings文件

declare module 'dumblib' {
  .
  .
  .

  export default class DumbLib {
    constructor(vars: Vars)
    .
    .
    .
  }

}

正如我所说,typescript编译器似乎认为一切都正确编译。然而,jest不断抛出这个错误。为了让jest认识到我的打字,我有什么特别的事情要做吗?或者我没有看到其他不一致的地方?

这里的问题是模块的实际导出与键入不匹配。TypeScript期望从模块中导出一个默认值,因为您说的是export default(导出默认值),但在模块类内部是整个导出

做这两件事应该会有帮助:

导入模块时,请确保如下所示: 从dumblib导入*作为dumblib; 在类型定义中,它应该是: 声明模块'dumblib'{ 类DumbLib{ // ... } 命名空间库{ 接口Foo{ 酒吧:字符串 } } 导出=DumbLib }
人力资源管理。。。我还从该模块导出了另一个接口,当我进行更改时,我在我的linter中看到了这样的内容:`导出分配不能在具有其他导出元素的模块中使用。`@unflores我更新了一个示例,以包括名称空间,这是如何从模块导出更多内容的。