我们正在将前端React应用程序从Flow迁移到TypeScript。
我有Webpack和TS配置设置来加载TypeScript文件,并且所有这些都可以编译和构建。
流检查是单独执行的(不是构建过程的一部分),直到所有文件都切换到TypeScript,但这会失败,并出现以下性质的错误:
src/SomeFlowModule.js:5
5: import TypeScriptModule from './TypeScriptModule';
^^^^^^^^^^^^^ ./TypeScriptModule. Required module not found
有没有一种方法可以使Flow知道导入的TypeScript文件,也许只是将它们视为
any
? 最佳答案
我想出的解决方案是为TypeScript文件添加一个声明:
declare module TsStub {
declare var exports: any;
}
您需要在.flowconfig中引用此 stub ,以便Flow在
[libs]
键下知道它。例如。如果将其保存在interfaces/TsStub.js
中,则将其添加到.flowconfig中:[libs]
interfaces/
然后在我的.flowconfig中引用 stub :
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(ts\|tsx\)$' -> 'TsStub'
我现在需要导入扩展名为ts的ts文件(例如
import myTsModule from 'my-ts-module.ts'
),但是编译起来还不错。当我开始将流文件转换为TS时,我只需要修复扩展名,但是编译器会为此提供帮助。