В документе указано, что :
Бабель возьмет ваш код потока и удалит аннотации любого типа.
Итак, поток может помочь вам найти неправильный вызов перед сборкой (обычно во время разработки, в идеале). И как только вы запустите flow
в своем проекте - вы можете обнаружить, где несоответствие подписи.
После компиляция аннотаций потока удаляется, и у вас есть чистый JavaScript.
Итак, если ваш конструктор принимает any
arg, но допустим только массив, вы можете явно указать, что:
class MyClass {
constructor(data:*) {
if (!Array.isArray(data)) {
throw new Exception('Bad argument');
}
}
}
Приведенная выше кодовая база будет работать, если вы также укажете data:Array<any>
, но вы увидите ошибки во время компиляции (так что вы можете поймать, кто виноват :)).