首页 > 解决方案 > ts 文件中的模块导出不是模块错误

问题描述

我有一个 config.ts 我有

module.exports = { something: 123 }

当我像 import { something } from './config.ts' 导入时出现错误config.ts' is not a module,有什么问题?我的打字稿配置正确,它在其他地方工作。

标签: javascriptnode.jstypescript

解决方案


如果您使用import { something } from './config.ts',则您使用的是 JavaScript 模块,但您的代码config.ts使用的是 CommonJS 模块。一些捆绑器等可能会让你混合它们,但最好不要。

要使config.tsJavaScript 模块与该import声明兼容(需要一个名为 的命名导出something),请将其更改为:

export const something = 123;

或者,当然,要config.ts通过 CommonJS 使用,您使用它的代码将是:

const { something } = require("./config.ts");

...但是考虑到您遇到的错误,我认为您的项目设置为使用 JavaScript 模块(import/ export),这在 2021 年左右可能是最好的(现在我们有动态导入来处理静态模块不使用的情况'不完全做这项工作)。


推荐阅读