1
封印されたオブジェクトのプロパティが条件でチェックされない理由は何ですか?例えばフロー封印されたオブジェクトタイプのプロパティが条件式でチェックされない理由
:
// Create a sealed object type
const o = {
Foo: 'Foo',
};
// Access a non-existent property
// Reports an Error
const fooz = o.Fooz;
// Conditional with non-existent property
// Does not report an error
if (o.Fooz === undefined) {}
だけ明確にする - これは私がFlow issueとして、この質問を投稿Flow sealed object
これはシールされていないオブジェクトです。 –
ありがとう@JaredSmith、私は明確にすべきです - これはFlowの観点から密閉されたオブジェクトだと信じています。ドキュメント(https://flow.org/en/docs/types/objects/#toc-sealed-objects)を見ると、「プロパティでオブジェクトを作成すると、フローに密封されたオブジェクトタイプが作成されます」と表示されます。 –
JavaScriptで既に別の意味を持っているので、彼らはその言葉を選んだのは残念です。あなたの質問については、私はフロー文書でこれについて何も見つけることができません。可能性が高い:高度に動的な言語を静的に分析することは難しく、コンパイラーはこのケースを妥当な時間内に解決できないか、既存のコードのパターンの人気を譲歩している。 –