Typescript 杰斯特不认识我的习惯打字
我有一个typescript项目,它需要一个个人库,该库是从作为commonjs库构建的git repo添加到我的package.json中的。当我运行我的构建脚本./node\u modules/.bin/webpack-d-config webpack/webpack.dev.js时,一切都正确编译。但是,当我运行jest jest-config front/jest.config.js时,它会抛出以下错误: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
● 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我更新了一个示例,以包括名称空间,这是如何从模块导出更多内容的。