迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > TypeScript >

TypeScript 中 File is not a module 错误

作者:迹忆客 最近更新:2022/10/29 浏览次数:

当我们忘记使用 export 关键字从文件中导出值或 IDE 故障时,会出现错误“File is not a module”。 要解决此错误,确保将我们尝试导入的值导出到其他文件中,并在必要时重写导入路径并重新启动 IDE。

这是错误发生方式的示例。 这是一个名为 another-file.ts 的文件。

another-file.ts

// 👇️ forgot to export
function sum(a: number, b: number) {
  return a + b;
}

这是一个名为 index.ts 的文件,它尝试从 another-file.ts 导入。

index.ts

// ⛔️ File is not a module.ts(2306)
import { sum } from './another-file';

console.log(sum(50, 50));

TypeScript 中 File is not a module 错误

文件 another-file.ts 不是模块,因为它没有 exportimport 语句。

为了解决这个错误,我们必须将我们打算导入的所有成员导出到其他文件中。

another-file.ts

// 👇️ named export
export function sum(a: number, b: number) {
  return a + b;
}

我们使用 export 关键字来导出 sum 函数。 现在我们可以在 index.ts 文件中导入它。

index.ts

// 👇️ named import
import { sum } from './another-file';

console.log(sum(50, 50)); // 👉️ 100

错误“File is not a module”仅表示该文件不包含任何导出或导入语句。 任何包含至少 1 个 importexport 语句的文件都被视为一个模块。

另一个常见的错误原因是我们的 IDE(例如 VSCode 或 Sublime)出现故障。 如果您已经导出了要导入的值,最好删除导入语句中的路径并尝试使用我们的 IDE 自动完成路径,以便它可以拾取它。

确保保存我们的文件并在必要时重新启动 IDE/服务器

上面的示例使用了命名的导出和导入。 我们还可以使用 default exportimport

another-file.ts

// 👇️ default export
export default function sum(a: number, b: number) {
  return a + b;
}

// 👇️ named export
export const num = 250;

我们将导入 默认导出 而不用花括号括起来。

index.ts

// 👇️ default and named imports
import sum, { num } from './another-file';

console.log(sum(num, num)); // 👉️ 500

重要提示 :如果要将变量(或箭头函数)导出为默认导出,则必须在第一行声明它并在下一行导出。 我们不能在同一行声明和默认导出变量。

命名导出和默认导出和导入之间的主要区别是 - 每个文件可以有多个命名导出,但只能有一个默认导出。

根据我的经验,大多数真实世界的代码库都专门使用命名导出和导入,因为它们可以更轻松地利用您的 IDE 进行自动完成和自动导入。

我们也不必考虑使用默认导出或命名导出导出哪些成员。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 TypeScript 中返回一个 Promise

发布时间:2023/03/19 浏览次数:182 分类:TypeScript

本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便