У меня есть файл Foo.js
:
// @flow
export const Foo = ((
x: number,
y: number
) => {
class Foo {
bar1: number;
bar2: number;
constructor(x: number, y: number) {
this.bar1 = x;
this.bar2 = y;
}
}
return Foo;
})();
Проверка потока возвращает следующие ошибки:
Невозможно создать типизированный интерфейс для этого модуля. Вы должны аннотировать экспорт этого модуля с помощью типов. Невозможно определить тип этого выражения вызова. Предоставьте аннотацию, например, добавив тип, приведенный к этому выражению.
Невозможно вызвать функцию, потому что функция [1] требует другого аргумента. Поток (несовместимый вызов)
Foo.js (2, 21): [1] функция
Если я внесу это изменение в последнюю строку, ошибки исчезнут:
})(): void;
Но новая ошибка:
Неожиданный токен
:
, ожидался токен;
Flow (ParseError)
что заставляет меня думать, что это может быть неправильное решение. Причина, по которой модуль отформатирован как таковой, заключается в том, что он используется как объект в других файлах, например: new Foo(1,2)