首页 > 解决方案 > 导入带有类型信息的可选模块

问题描述

我的 TypeScript 库中有一个optionalDependency用户可能安装也可能不安装。此可选依赖项也是用 TypeScript 编写的。

我现在的处理方式是这样的

1.

let lib: any;
try {
  lib = require('lib');
} catch (_) {}

if (lib) {
  // use lib
}

但这不会保留类型信息。在一个理想的世界中,我希望能够做到这一点:

2.

import { func } from 'lib';

if (func) {
  // use func
}

我已经意识到这是不可能的。

所以我的问题是:是否可以使用 (1) 中的代码从可选依赖项中获取类型信息?如何?

标签: typescript

解决方案


推荐阅读