在 TypeScript 中,可以使用 try catch 来检查一个模块是否存在。如果尝试导入一个不存在的模块,TypeScript 编译器将抛出一个错误。可以使用这个特性来判断一个模块是否存在:
// 尝试导入一个模块
try {
require.resolve('some-module');
import("some-module"); // 如果模块存在,这行代码不会报错
} catch (e) {
console.log("模块不存在");
}
在这个例子中,require.resolve 尝试解析模块并返回它的路径。如果模块不存在,它将抛出一个错误。而import()是一个动态导入,如果模块存在,则模块会被正确导入,如果模块不存在,将在运行时抛出一个错误,这个错误可以被 try catch 捕获。
这种方法在编译时不起作用,只能在运行时检测模块是否存在。