在Flow中导入TypeScript模块

时间:2018-05-22 13:44:42

标签: typescript flowtype

我们正在将前端React应用程序从Flow迁移到TypeScript。

我有Webpack和TS配置设置来加载TypeScript文件,所有这些都可以编译和构建。

流检查是单独执行的(不是构建过程的一部分),直到所有文件都切换到TypeScript,但是这种情况出现了错误:

src/SomeFlowModule.js:5
  5: import TypeScriptModule from './TypeScriptModule';
                           ^^^^^^^^^^^^^ ./TypeScriptModule. Required module not found

有没有办法让Flow知道导入的TypeScript文件,也许只是将它们视为any

1 个答案:

答案 0 :(得分:0)

我想出的解决方案是为TypeScript文件添加一个声明:

SELECT * FROM (
      SELECT dbo.Table1.Table1_ID, dbo.Table1.Name, dbo.Table5.Ergebniss, 
      dbo.Table2.Datum, dbo.Table3.Stelle, dbo.Table2.Nummer 
    FROM dbo.Table1 
    INNER JOIN dbo.Table2 ON dbo.Table1.Table1_ID = dbo.Table2.Table1_ID 
    INNER JOIN dbo.Table3 ON dbo.Table2.Table2_ID = dbo.Table3.Table2_ID 
    INNER JOIN dbo.Table4 ON dbo.Table3.Table3_ID = dbo.Table4.Table3_ID 
    INNER JOIN dbo.Table5 ON dbo.Table4.Table4_ID = dbo.Table5.Table4_ID
    GROUP BY dbo.Table1.Table1_ID, dbo.Table1.Name, dbo.Table5.Wert2, 
    dbo.Table5.Wert1, dbo.Table5.Ergebniss, dbo.Table2.Datum, 
    dbo.Table2.Nummer, dbo.Table3.Stelle
       HAVING (dbo.Table1.Table1_ID = 1) 
         AND (dbo.Table2.Nummer = (SELECT MAX(dbo.Table2.Nummer) AS 
   MaxSchichtNummer 
 FROM dbo.Table1 
 INNER JOIN dbo.Table2 ON dbo.Table1.Table1_ID = dbo.Table2.Table1_ID 
 WHERE (dbo.Table1.Table1_ID = 1))) ) AS TG 
 where tg.Nummer 
   in (Select top 5000 Nummer from dbo.Table2 where Table1_ID=1 order by datum 
 desc) order by Datum desc

您需要在.flowconfig中引用此存根,以便Flow在declare module TsStub { declare var exports: any; } 键下知道它。例如。如果将其保存在[libs]中,则只需将其添加到.flowconfig:

interfaces/TsStub.js

然后在我的.flowconfig中引用存根:

[libs]
interfaces/

我现在需要导入扩展名为ts的文件(例如module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(ts\|tsx\)$' -> 'TsStub' ),但是可以编译。

当我开始将流文件转换为TS时,我只需要修复扩展名,但是编译器会为此提供帮助。