Typescript中如何正确从enquirer导入AutoComplete?
解决方案
出现该报错的原因是enquirer的TypeScript类型定义未将AutoComplete作为独立的命名导出暴露,该组件是挂载在默认导出对象上的属性,你可以用以下两种方式正确导入:
方式一:从默认导出解构
如果你的tsconfig.json中开启了esModuleInterop: true,直接使用默认导入后解构即可:
import enquirer from 'enquirer'; const { AutoComplete } = enquirer;
如果未开启esModuleInterop,改为用命名空间导入的写法:
import * as enquirer from 'enquirer'; const { AutoComplete } = enquirer;
方式二:直接导入对应文件
如果用上面的方式还是出现类型报错,可以直接导入AutoComplete对应的源码文件:
import AutoComplete from 'enquirer/lib/prompts/autocomplete';
导入后即可正常使用,示例代码如下:
const run = async () => { const prompt = new AutoComplete({ name: 'result', message: '请选择选项', choices: ['选项1', '选项2', '选项3', '选项4'] }); const answer = await prompt.run(); console.log('你选择了:', answer); }; run();
内容的提问来源于stack exchange,提问作者user7858768
相关产品推荐
相关产品推荐

