<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Flow Blog</title>
        <link>https://flow.org/blog/</link>
        <description>Flow Blog</description>
        <lastBuildDate>Thu, 29 May 2025 00:00:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <item>
            <title><![CDATA[Natural Inference for Primitives in Flow]]></title>
            <link>https://flow.org/blog/2025/05/29/Natural-Inference-for-Primitives-in-Flow/</link>
            <guid>https://flow.org/blog/2025/05/29/Natural-Inference-for-Primitives-in-Flow/</guid>
            <pubDate>Thu, 29 May 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced natural inference for primitives when it was introduced. For current behavior, see the literal types and const expressions and const type parameters documentation.]]></description>
            <content:encoded><![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 natural inference for primitives when it was introduced. For current behavior, see the <a href="https://flow.org/en/docs/types/literals/">literal types</a> and <a href="https://flow.org/en/docs/types/const-expression/"><code>const</code> expressions and <code>const</code> type parameters</a> documentation.</p></div></div>
<p>Flow now decides the type of string, number, and boolean literal values at their definition site: either the broad type (e.g. <code>string</code>) or the literal type (e.g. <code>'foo'</code>). You can control the behavior with type annotations, <code>as const</code>, or <code>const</code> type parameters.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing: Mapped Types + Pick, Omit, and Record]]></title>
            <link>https://flow.org/blog/2024/08/06/Announcing-Mapped-Types-Pick-Omit-and-Record/</link>
            <guid>https://flow.org/blog/2024/08/06/Announcing-Mapped-Types-Pick-Omit-and-Record/</guid>
            <pubDate>Tue, 06 Aug 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced mapped types and the Pick, Omit, and Record utility types when they were introduced. For current syntax and behavior, see the Mapped Types and Utility Types documentation.]]></description>
            <content:encoded><![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 mapped types and the <code>Pick</code>, <code>Omit</code>, and <code>Record</code> utility types when they were introduced. For current syntax and behavior, see the <a href="https://flow.org/en/docs/types/mapped-types/">Mapped Types</a> and <a href="https://flow.org/en/docs/types/utilities/">Utility Types</a> documentation.</p></div></div>
<p>Mapped types let you derive one object type from another by transforming each of its properties, and power new utility types like <code>Pick</code>, <code>Omit</code>, and <code>Record</code>.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[New Flow Language Features for React]]></title>
            <link>https://flow.org/blog/2024/04/03/New-Flow-Language-Features-for-React/</link>
            <guid>https://flow.org/blog/2024/04/03/New-Flow-Language-Features-for-React/</guid>
            <pubDate>Wed, 03 Apr 2024 00:00:00 GMT</pubDate>
            <description><![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.]]></description>
            <content:encoded><![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://flow.org/en/docs/react/component-syntax/">Component Syntax</a> and <a href="https://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Conditional Types]]></title>
            <link>https://flow.org/blog/2024/03/05/Announcing-Conditional-Types/</link>
            <guid>https://flow.org/blog/2024/03/05/Announcing-Conditional-Types/</guid>
            <pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced conditional types when it was introduced. For current syntax and behavior, see the Conditional Types documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing User Defined Type Guards in Flow]]></title>
            <link>https://flow.org/blog/2024/03/05/Announcing-User-Defined-Type-Guards-in-Flow/</link>
            <guid>https://flow.org/blog/2024/03/05/Announcing-User-Defined-Type-Guards-in-Flow/</guid>
            <pubDate>Tue, 05 Mar 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced user-defined type guards when it was introduced. For current syntax and behavior, see the Type Guards documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[New type casting syntax for Flow: 'as']]></title>
            <link>https://flow.org/blog/2024/02/06/New-type-casting-syntax-for-Flow-as/</link>
            <guid>https://flow.org/blog/2024/02/06/New-type-casting-syntax-for-Flow-as/</guid>
            <pubDate>Tue, 06 Feb 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced the as type casting syntax when it was introduced. For current syntax and behavior, see the Type Casting documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Improved Flow Docs and Try Flow]]></title>
            <link>https://flow.org/blog/2023/09/19/Improved-Flow-Docs-and-Try-Flow/</link>
            <guid>https://flow.org/blog/2023/09/19/Improved-Flow-Docs-and-Try-Flow/</guid>
            <pubDate>Tue, 19 Sep 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[We’ve refreshed our documentation, and added the ability to configure options and lints in Try Flow!]]></description>
            <content:encoded><![CDATA[<p>We’ve refreshed our documentation, and added the ability to configure options and lints in Try Flow!</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing 5 new Flow tuple type features]]></title>
            <link>https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/</link>
            <guid>https://flow.org/blog/2023/08/17/Announcing-5-new-Flow-tuple-type-features/</guid>
            <pubDate>Thu, 17 Aug 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced new tuple type features when it was introduced. For current syntax and behavior, see the Tuples documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Flow can now detect unused Promises]]></title>
            <link>https://flow.org/blog/2023/04/10/Unused-Promise/</link>
            <guid>https://flow.org/blog/2023/04/10/Unused-Promise/</guid>
            <pubDate>Mon, 10 Apr 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced unused Promise detection when it was introduced. For current syntax and behavior, see the Linting documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Announcing Partial & Required Flow utility types + catch annotations]]></title>
            <link>https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/</link>
            <guid>https://flow.org/blog/2023/03/15/Announcing-Partial-and-Required-Flow-utility-types-and-catch-annotations/</guid>
            <pubDate>Wed, 15 Mar 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced Partial, Required, and catch annotations when it was introduced. For current syntax and behavior, see the Utility Types documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Exact object types by default, by default]]></title>
            <link>https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default/</link>
            <guid>https://flow.org/blog/2023/02/16/Exact-object-types-by-default-by-default/</guid>
            <pubDate>Thu, 16 Feb 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced exact object types becoming the default when it was introduced. For current syntax and behavior, see the Objects documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Local Type Inference for Flow]]></title>
            <link>https://flow.org/blog/2023/01/17/Local-Type-Inference/</link>
            <guid>https://flow.org/blog/2023/01/17/Local-Type-Inference/</guid>
            <pubDate>Tue, 17 Jan 2023 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced local type inference when it was introduced. For current syntax and behavior, see the Annotation Requirement documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Improved handling of the empty object in Flow]]></title>
            <link>https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/</link>
            <guid>https://flow.org/blog/2022/10/20/Improved-handling-of-the-empty-object-in-Flow/</guid>
            <pubDate>Thu, 20 Oct 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced improved handling of the empty object when it was introduced. For current syntax and behavior, see the Objects documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Requiring More Annotations to Functions and Classes in Flow]]></title>
            <link>https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/</link>
            <guid>https://flow.org/blog/2022/09/30/Requiring-More-Annotations-on-Functions-and-Classes/</guid>
            <pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate>
            <description><![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.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[New Flow Language Rule: Constrained Writes]]></title>
            <link>https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/</link>
            <guid>https://flow.org/blog/2022/08/05/New-Flow-Language-Rule-Constrained-Writes/</guid>
            <pubDate>Fri, 05 Aug 2022 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced the constrained writes rule when it was introduced. For current syntax and behavior, see the Variables documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing: Local Type Inference for Flow]]></title>
            <link>https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/</link>
            <guid>https://flow.org/blog/2021/09/27/Introducing-Local-Type-Inference-for-Flow/</guid>
            <pubDate>Mon, 27 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced local type inference when it was introduced. For current syntax and behavior, see the Annotation Requirement documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing Flow Enums]]></title>
            <link>https://flow.org/blog/2021/09/13/Introducing-Flow-Enums/</link>
            <guid>https://flow.org/blog/2021/09/13/Introducing-Flow-Enums/</guid>
            <pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced Flow Enums when it was introduced. For current syntax and behavior, see the Flow Enums documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[TypeScript Enums vs. Flow Enums]]></title>
            <link>https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/</link>
            <guid>https://flow.org/blog/2021/09/13/TypeScript-Enums-vs-Flow-Enums/</guid>
            <pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced TypeScript Enums vs. Flow Enums when it was introduced. For current syntax and behavior, see the Flow Enums documentation.]]></description>
            <content:encoded><![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://flow.org/en/docs/enums/">Flow Enums</a> documentation.</p></div></div>
<p>A comparison of the enums features of TypeScript and Flow.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Introducing Flow Indexed Access Types]]></title>
            <link>https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/</link>
            <guid>https://flow.org/blog/2021/07/21/Introducing-Flow-Indexed-Access-Types/</guid>
            <pubDate>Wed, 21 Jul 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced indexed access types when it was introduced. For current syntax and behavior, see the Indexed Access Types documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
        <item>
            <title><![CDATA[Sound Typing for 'this' in Flow]]></title>
            <link>https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow/</link>
            <guid>https://flow.org/blog/2021/06/02/Sound-Typing-for-this-in-Flow/</guid>
            <pubDate>Wed, 02 Jun 2021 00:00:00 GMT</pubDate>
            <description><![CDATA[This post announced sound typing for this when it was introduced. For current syntax and behavior, see the Functions documentation.]]></description>
            <content:encoded><![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://flow.org/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:encoded>
        </item>
    </channel>
</rss>