我正在测试Flow以便键入我们的JavaScript,并且我想为内部库创建一个libdef。它是这样导入的:
import withValidation from 'internally-shared-libs/decorators/withValidation';
The documentation并没有真正解决如何为像这样的深层路径创建库定义的问题,仅针对顶级的。
我将libdef文件放在哪里?我怎么称呼它?以及它的外观(当然忽略了libdef的实际实现)?
在此先感谢您的任何帮助!
最佳答案
一个libdef中可以有多个declare module
。您可以使用深层路径作为模块名称。这个libdef文件在哪里都没有关系,只要它包含在[libs]
的.flowconfig
部分中即可。
这是一个示例,其中internally-shared-libs
具有出口,而更深的路径具有出口:
Libdef:
// @flow
declare module 'internally-shared-libs' {
declare export function hello(): string;
declare export function bye(): string;
}
declare module 'internally-shared-libs/decorators/withValidation' {
// You will obviously want to improve these types
declare type Input = any;
declare type Output = any;
declare export default function withValidation(input: Input): Output;
}
用法:
// @flow
import { hello, bye } from 'internally-shared-libs';
import withValidation from 'internally-shared-libs/decorators/withValidation';
关于javascript - 具有更深路径的库的流libdefs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51357664/