如何从Node模块导出TypeScript接口?TS2307导入报错解决
解决TypeScript导入Node模块时的TS2307错误
如果你在尝试从Node模块导出TypeScript接口并跨项目导入时,碰到了TS2307错误(提示无法找到模块'quill-marking-logic'),比如使用了这样的导入语句:
import { checkSentenceCombining, checkSentenceFragment, checkDiagnosticQuestion, checkFillInTheBlankQuestion, ConceptResult } from 'quill-marking-logic'
那大概率是导入项目的tsconfig.json配置出了问题。我排查这类问题时发现:当tsconfig里的"module"设置为"es6"时,TypeScript默认会启用Classic模块解析模式,而这种模式的查找逻辑和Node.js的模块规则不兼容,导致无法识别自定义的Node模块。
解决这个问题只需要简单一步:在tsconfig.json的compilerOptions中,显式将moduleResolution设置为"node":
{ "compilerOptions": { "module": "es6", "moduleResolution": "node", // 其他项目所需的配置项 } }
修改后,TypeScript就会按照Node.js的模块解析规则去定位quill-marking-logic模块,就能顺利导入里面的接口和函数了。
内容的提问来源于stack exchange,提问作者E. Friedberg
相关产品推荐
相关产品推荐

