Flow's documentation states:より具体的な入力が悪い理由を誰かが説明できますか?
クラスを考える:
class BaseClass { method(value: City): City { ... } }
クラスとサブクラス:
class SubClass extends BaseClass { method(value: SanFrancisco): City { ... } // ERROR!! }
あなたはサンフランシスコ北部を期待している場合ので、これはフローでエラーであり、あなたはサンフランシスコだけに存在する何かを使う都市を手に入れますuldは実行時にエラーを引き起こします。
私がSubClass#method
を呼び出している場合は、タイプチェッカーでSanFrancisco
を入力する必要はありませんか?なぜ流れがそれをエラーにしますか?
一般的にOOPのエラーです。サブクラスは親とは異なるインタフェースを持ちます。 Liskov置換原理を参照してください。 – jonrsharpe