Я тестирую Flow для ввода нашего JavaScript, и я хочу создать libdef для внутренней библиотеки. Он импортируется следующим образом:
import withValidation from 'internally-shared-libs/decorators/withValidation';
В документации на самом деле не рассматривается вопрос о том, как создавать определения библиотек для таких глубоких путей - только верхние уровни.
Где я могу поместить файл libdef? Что я называю? И как бы это выглядело (игнорируя фактическую реализацию libdef, конечно)?
Заранее благодарим за помощь!
Вы можете иметь несколько declare module
в одном libdef. Вы можете использовать глубокий путь в качестве имени модуля. Не имеет значения, где этот файл 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';