Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有较深路径的库的流libdef_Javascript_Flowtype_Flow Typed - Fatal编程技术网

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中可以有多个声明模块。您可以使用深路

我正在测试输入JavaScript的流程,我想为一个内部库创建一个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';

完美答案!尽管需要注意的是,在这种情况下,名称空间,以及命名,一般来说,完全由您决定。虽然使用与实际路径匹配的名称声明模块是一个好主意,但您不必也可以使用任何其他您认为合适的命名。如果导出中的不同名称之间没有冲突,例如,您可以将您的声明命名为与导出模块相同的名称。非常感谢您的回答!