TypeScript 中 File is not a module 错误
当我们忘记使用 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));
文件 another-file.ts 不是模块,因为它没有 export
或 import
语句。
为了解决这个错误,我们必须将我们打算导入的所有成员导出到其他文件中。
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 个 import
或 export
语句的文件都被视为一个模块。
另一个常见的错误原因是我们的 IDE(例如 VSCode 或 Sublime)出现故障。 如果您已经导出了要导入的值,最好删除导入语句中的路径并尝试使用我们的 IDE 自动完成路径,以便它可以拾取它。
确保保存我们的文件并在必要时重新启动 IDE/服务器。
上面的示例使用了命名的导出和导入。 我们还可以使用 default export
和 import
。
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 进行自动完成和自动导入。
我们也不必考虑使用默认导出或命名导出导出哪些成员。
相关文章
在 AngularJs 中设置 Select From Typescript 的默认选项值
发布时间:2023/04/14 浏览次数:78 分类:Angular
-
本教程提供了在 AngularJs 中从 TypeScript 中设置 HTML 标记选择的默认选项的解释性解决方案。
在 Angular 中使用 TypeScript 的 getElementById 替换
发布时间:2023/04/14 浏览次数:153 分类:Angular
-
本教程指南提供了有关使用 TypeScript 在 Angular 中替换 document.getElementById 的简要说明。这也提供了在 Angular 中 getElementById 的最佳方法。
在 TypeScript 中使用 try..catch..finally 处理异常
发布时间:2023/03/19 浏览次数:181 分类:TypeScript
-
本文详细介绍了如何在 TypeScript 中使用 try..catch..finally 进行异常处理,并附有示例。
在 TypeScript 中使用 declare 关键字
发布时间:2023/03/19 浏览次数:97 分类:TypeScript
-
本教程指南通过特定的实现和编码示例深入了解了 TypeScript 中 declare 关键字的用途。
在 TypeScript 中 get 和 set
发布时间:2023/03/19 浏览次数:172 分类:TypeScript
-
本篇文章演示了类的 get 和 set 属性以及如何在 TypeScript 中实现它。
在 TypeScript 中格式化日期和时间
发布时间:2023/03/19 浏览次数:161 分类:TypeScript
-
本教程介绍内置对象 Date() 并讨论在 Typescript 中获取、设置和格式化日期和时间的各种方法。
在 TypeScript 中返回一个 Promise
发布时间:2023/03/19 浏览次数:182 分类:TypeScript
-
本教程讨论如何在 TypeScript 中返回正确的 Promise。这将提供 TypeScript 中 Returns Promise 的完整编码示例,并完整演示每个步骤。
在 TypeScript 中定义函数回调的类型
发布时间:2023/03/19 浏览次数:221 分类:TypeScript
-
本教程说明了在 TypeScript 中为函数回调定义类型的解决方案。为了程序员的方便和方便,实施了不同的编码实践指南。
在 TypeScript 中把 JSON 对象转换为一个类
发布时间:2023/03/19 浏览次数:110 分类:TypeScript
-
本教程演示了如何将 JSON 对象转换为 TypeScript 中的类。