#javascript #flowtype
#javascript #flowtype
Вопрос:
Вот несколько примеров хорошего кода:
interface FooType {
bar: (boolean) => void
}
class Foo implements FooType {
bar (someArg) {}
}
Здесь ничего плохого — работает как ожидалось, без ошибок.
Теперь, если мы экспортируем Foo
:
interface FooType {
bar: (boolean) => void
}
class Foo implements FooType {
bar (someArg) {}
}
export default Foo
Мы получаем следующую ошибку «Аннотация отсутствующего типа»:
6: bar (someArg) {}
^ Missing type annotation for `someArg`. [missing-annot]
Ого!
Мне не ясно, почему это было бы так. Я нашел это сообщение в блоге о том, что «входные позиции, доступные из экспорта, должны быть аннотированы», но Foo
типизированы, и, следовательно, метод bar должен быть явно введен перед экспортом.
Есть какие-либо подсказки относительно того, что происходит?
Спасибо!