Javascript 具有较深路径的库的流libdef
我正在测试输入JavaScript的流程,我想为一个内部库创建一个libdef。它是这样导入的:Javascript 具有较深路径的库的流libdef,javascript,flowtype,flow-typed,Javascript,Flowtype,Flow Typed,我正在测试输入JavaScript的流程,我想为一个内部库创建一个libdef。它是这样导入的: import withValidation from 'internally-shared-libs/decorators/withValidation'; 并没有真正解决如何为像这样的深层路径创建库定义的问题-仅限于顶级路径 我应该把libdef文件放在哪里?我叫它什么?它看起来如何(当然,忽略libdef的实际实现) 在此提前感谢您的帮助 在一个libdef中可以有多个声明模块。您可以使用深路
import withValidation from 'internally-shared-libs/decorators/withValidation';
并没有真正解决如何为像这样的深层路径创建库定义的问题-仅限于顶级路径
我应该把libdef文件放在哪里?我叫它什么?它看起来如何(当然,忽略libdef的实际实现)
在此提前感谢您的帮助 在一个libdef中可以有多个
声明模块。您可以使用深路径作为模块名称。只要此libdef文件包含在.flowconfig
中的[libs]
部分中,它在何处并不重要
下面是一个示例,内部共享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';
完美答案!尽管需要注意的是,在这种情况下,名称空间,以及命名,一般来说,完全由您决定。虽然使用与实际路径匹配的名称声明模块是一个好主意,但您不必也可以使用任何其他您认为合适的命名。如果导出中的不同名称之间没有冲突,例如,您可以将您的声明命名为与导出模块相同的名称。非常感谢您的回答!