我正在测试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/

10-12 00:59