TypeScript - 判断导入的模块是否存在

三味码屋 2024年06月16日 304次浏览

在 TypeScript 中,可以使用 try catch 来检查一个模块是否存在。如果尝试导入一个不存在的模块,TypeScript 编译器将抛出一个错误。可以使用这个特性来判断一个模块是否存在:

// 尝试导入一个模块
try {
    require.resolve('some-module');
    import("some-module"); // 如果模块存在,这行代码不会报错
} catch (e) {
    console.log("模块不存在");
}

在这个例子中,require.resolve 尝试解析模块并返回它的路径。如果模块不存在,它将抛出一个错误。而import()是一个动态导入,如果模块存在,则模块会被正确导入,如果模块不存在,将在运行时抛出一个错误,这个错误可以被 try catch 捕获。

这种方法在编译时不起作用,只能在运行时检测模块是否存在。