1"use strict";(globalThis.webpackChunknew_website=globalThis.webpackChunknew_website||[]).push([[3111],{3111(e){e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docsSidebar":[{"type":"link","label":"Get Started","href":"/en/docs/getting-started","docId":"getting-started","unlisted":false},{"type":"link","label":"Flow for TypeScript Users","href":"/en/docs/flow-vs-typescript","docId":"flow-vs-typescript","unlisted":false},{"type":"category","label":"Language Guide","items":[{"type":"category","label":"Types","items":[{"type":"link","label":"Type Annotations","href":"/en/docs/types","docId":"types/index","unlisted":false},{"type":"link","label":"Primitive Types","href":"/en/docs/types/primitives","docId":"types/primitives","unlisted":false},{"type":"link","label":"Literal Types","href":"/en/docs/types/literals","docId":"types/literals","unlisted":false},{"type":"link","label":"Unknown","href":"/en/docs/types/unknown","docId":"types/unknown","unlisted":false},{"type":"link","label":"Empty","href":"/en/docs/types/empty","docId":"types/empty","unlisted":false},{"type":"link","label":"Any","href":"/en/docs/types/any","docId":"types/any","unlisted":false},{"type":"link","label":"Maybe Types","href":"/en/docs/types/maybe","docId":"types/maybe","unlisted":false},{"type":"link","label":"Objects","href":"/en/docs/types/objects","docId":"types/objects","unlisted":false},{"type":"link","label":"Arrays","href":"/en/docs/types/arrays","docId":"types/arrays","unlisted":false},{"type":"link","label":"Tuples","href":"/en/docs/types/tuples","docId":"types/tuples","unlisted":false},{"type":"link","label":"Functions","href":"/en/docs/types/functions","docId":"types/functions","unlisted":false},{"type":"link","label":"Classes","href":"/en/docs/types/classes","docId":"types/classes","unlisted":false},{"type":"link","label":"Type Aliases","href":"/en/docs/types/aliases","docId":"types/aliases","unlisted":false},{"type":"link","label":"Opaque Type Aliases","href":"/en/docs/types/opaque-types","docId":"types/opaque-types","unlisted":false},{"type":"link","label":"Interfaces","href":"/en/docs/types/interfaces","docId":"types/interfaces","unlisted":false},{"type":"link","label":"Generics","href":"/en/docs/types/generics","docId":"types/generics","unlisted":false},{"type":"link","label":"Unions","href":"/en/docs/types/unions","docId":"types/unions","unlisted":false},{"type":"link","label":"Intersections","href":"/en/docs/types/intersections","docId":"types/intersections","unlisted":false},{"type":"link","label":"Indexed Access Types","href":"/en/docs/types/indexed-access","docId":"types/indexed-access","unlisted":false},{"type":"link","label":"Conditional Types","href":"/en/docs/types/conditional","docId":"types/conditional","unlisted":false},{"type":"link","label":"Mapped Types","href":"/en/docs/types/mapped-types","docId":"types/mapped-types","unlisted":false},{"type":"link","label":"Type Guards","href":"/en/docs/types/type-guards","docId":"types/type-guards","unlisted":false},{"type":"link","label":"Typeof Types","href":"/en/docs/types/typeof","docId":"types/typeof","unlisted":false},{"type":"link","label":"Type Casting Expressions","href":"/en/docs/types/casting","docId":"types/casting","unlisted":false},{"type":"link","label":"Const Expressions","href":"/en/docs/types/const-expression","docId":"types/const-expression","unlisted":false},{"type":"link","label":"Utility Types","href":"/en/docs/types/utilities","docId":"types/utilities","unlisted":false},{"type":"link","label":"Module Types","href":"/en/docs/types/modules","docId":"types/modules","unlisted":false},{"type":"link","label":"Comment Types","href":"/en/docs/types/comments","docId":"types/comments","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Narrowing & Safety","items":[{"type":"link","label":"Type Refinements","href":"/en/docs/lang/refinements","docId":"lang/refinements","unlisted":false}
1,{"type":"link","label":"Types & Expressions","href":"/en/docs/lang/types-and-expressions","docId":"lang/types-and-expressions","unlisted":false},{"type":"link","label":"Variable Declarations","href":"/en/docs/lang/variables","docId":"lang/variables","unlisted":false},{"type":"link","label":"Annotation Requirement","href":"/en/docs/lang/annotation-requirement","docId":"lang/annotation-requirement","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Type System Deep Dive","items":[{"type":"link","label":"Subsets & Subtypes","href":"/en/docs/lang/subtypes","docId":"lang/subtypes","unlisted":false},{"type":"link","label":"Type Hierarchy","href":"/en/docs/lang/type-hierarchy","docId":"lang/type-hierarchy","unlisted":false},{"type":"link","label":"Type Variance","href":"/en/docs/lang/variance","docId":"lang/variance","unlisted":false},{"type":"link","label":"Nominal & Structural Typing","href":"/en/docs/lang/nominal-structural","docId":"lang/nominal-structural","unlisted":false},{"type":"link","label":"Object Subtyping","href":"/en/docs/lang/object-subtyping","docId":"lang/depth-subtyping","unlisted":false},{"type":"link","label":"Declaration Merging","href":"/en/docs/lang/declaration-merging","docId":"lang/declaration-merging","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Enums","items":[{"type":"link","label":"Flow Enums","href":"/en/docs/enums","docId":"enums/index","unlisted":false},{"type":"link","label":"Defining enums","href":"/en/docs/enums/defining-enums","docId":"enums/defining-enums","unlisted":false},{"type":"link","label":"Using enums","href":"/en/docs/enums/using-enums","docId":"enums/using-enums","unlisted":false},{"type":"link","label":"Migrating from legacy patterns","href":"/en/docs/enums/migrating-legacy-patterns","docId":"enums/migrating-legacy-patterns","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Match","items":[{"type":"link","label":"Match Expressions and Statements","href":"/en/docs/match","docId":"match/index","unlisted":false},{"type":"link","label":"Match Patterns","href":"/en/docs/match/patterns","docId":"match/patterns","unlisted":false},{"type":"link","label":"Migration from existing patterns","href":"/en/docs/match/migration","docId":"match/migration","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Declarations","href":"/en/docs/declarations","docId":"declarations/index","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"React","items":[{"type":"link","label":"Using React with Flow","href":"/en/docs/react","docId":"react/index","unlisted":false},{"type":"link","label":"Component Syntax","href":"/en/docs/react/component-syntax","docId":"react/component-syntax","unlisted":false},{"type":"link","label":"Hook Syntax","href":"/en/docs/react/hook-syntax","docId":"react/hook-syntax","unlisted":false},{"type":"link","label":"Component Types","href":"/en/docs/react/component-types","docId":"react/component-types","unlisted":false},{"type":"link","label":"Render Types","href":"/en/docs/react/render-types","docId":"react/render-types","unlisted":false},{"type":"link","label":"Event Handling","href":"/en/docs/react/events","docId":"react/events","unlisted":false},{"type":"link","label":"Refs","href":"/en/docs/react/refs","docId":"react/refs","unlisted":false},{"type":"link","label":"React Type Reference","href":"/en/docs/react/types","docId":"react/types","unlisted":false},{"type":"category","label":"Legacy Patterns","collapsed":true,"items":[{"type":"link","label":"Function/Class Components","href":"/en/docs/react/function-and-class-components","docId":"react/function-and-class-components","unlisted":false},{"type":"link","label":"Higher-order Components","href":"/en/docs/react/hoc","docId":"react/hoc","unlisted":false}],"collapsible":true}],"collapsed":true,"collapsible":true},{"type":"category","label":"Linting","items":[{"type":"link","label":"Linting Overview","href":"/en/docs/linting","docId":"linting/index","unlisted":false},{"type":"link","label":"Flowlint Comments","href":"/en/docs/linting/flowlint-comments","docId":"linting/flowlint-comments","unlisted":false},{"type":"link","label":"Lint Rule Reference","href":"/en/docs/linting/rule-reference","docId":"linting/rule-reference","unlisted":false},{"type":"link","label":"Strict ES Module Import/Export Lints","href":"/en/docs/linting/strict-import-export-lints","docId":"linting/strict-import-export-lints","unlisted":false},{"type":"link","label":"Error Suppressions","href":"/en/docs/errors","docId":"errors/index","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Tooling","items":[{"type":"link","label":"Editors","href":"/en/docs/editors","docId":"editors/index","unlisted":false},{"type":"link","label":"Babel","href":"/en/docs/tools/babel","docId":"tools/babel","unlisted":false},{"type":"link","label":"SWC","href":"/en/docs/tools/swc","docId":"tools/swc","unlisted":false},{"type":"link","label":"Prettier","href":"/en/docs/tools/prettier","docId":"tools/prettier","unlisted":false},{"type":"link","label":"ESLint","href":"/en/docs/tools/eslint","docId":"tools/eslint","unlisted":false},{"type":"link","label":"flow-remove-types","href":"/en/docs/tools/flow-remove-types","docId":"tools/flow-remove-types","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Reference","items":[{"type":"category","label":"Configuration","items":[{"type":"link","label":"Overview","href":"/en/docs/config","docId":"config/index","unlisted":false},{"type":"link","label":"Options","href":"/en/docs/config/options","docId":"config/options","unlisted":false},{"type":"link","label":"Version","href":"/en/docs/config/version","docId":"config/version","unlisted":false},{"type":"link","label":"Include","href":"/en/docs/config/include","docId":"config/include","unlisted":false},{"type":"link","label":"Ignore","href":"/en/docs/config/ignore","docId":"config/ignore","unlisted":false},{"type":"link","label":"Untyped","href":"/en/docs/config/untyped","docId":"config/untyped","unlisted":false},{"type":"link","label":"Declarations","href":"/en/docs/config/declarations","docId":"config/declarations","unlisted":false},{"type":"link","label":"Libs","href":"/en/docs/config/libs","docId":"config/libs","unlisted":false},{"type":"link","label":"Lints","href":"/en/docs/config/lints","docId":"config/lints","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"CLI","items":[{"type":"link","label":"Flow CLI","href":"/en/docs/cli","docId":"cli/index","unlisted":false},{"type":"link","label":"Apply Code Action","href":"/en/docs/cli/apply-code
1-action","docId":"cli/apply-code-action","unlisted":false},{"type":"link","label":"Flow Coverage","href":"/en/docs/cli/coverage","docId":"cli/coverage","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Flow Strict","href":"/en/docs/strict","docId":"strict/index","unlisted":false},{"type":"category","label":"Library Definitions","items":[{"type":"link","label":"Library Definitions","href":"/en/docs/libdefs","docId":"libdefs/index","unlisted":false},{"type":"link","label":"Creating Library Definitions","href":"/en/docs/libdefs/creation","docId":"libdefs/creation","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"Modernizing Legacy Syntax","href":"/en/docs/modernizing-legacy-syntax","docId":"modernizing-legacy-syntax","unlisted":false},{"type":"link","label":"Glossary","href":"/en/docs/glossary","docId":"glossary","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"link","label":"FAQ","href":"/en/docs/faq","docId":"faq","unlisted":false}]},"docs":{"cli/apply-code-action":{"id":"cli/apply-code-action","title":"Apply Code Action","description":"Apply LSP code actions like autofixes and code transformations from the command line, useful for scripting and batch-fixing.","sidebar":"docsSidebar"},"cli/coverage":{"id":"cli/coverage","title":"Flow Coverage","description":"Measure how much of your code is covered by Flow\'s type checking, based on the presence of the any type in inferred expressions.","sidebar":"docsSidebar"},"cli/index":{"id":"cli/index","title":"Flow CLI","description":"How to use Flow from the command line. Including how to manage the Flow background process.","sidebar":"docsSidebar"},"config/declarations":{"id":"config/declarations","title":".flowconfig [declarations]","description":"Configure Flow to parse third-party library files in declaration mode, extracting type signatures without typechecking their contents.","sidebar":"docsSidebar"},"config/ignore":{"id":"config/ignore","title":".flowconfig [ignore]","description":"Configure Flow to ignore files matching project-relative globs when type checking your code.","sidebar":"docsSidebar"},"config/include":{"id":"config/include","title":".flowconfig [include]","description":"Configure which files and directories Flow should include for type checking beyond the project root.","sidebar":"docsSidebar"},"config/index":{"id":"config/index","title":".flowconfig","description":"Flow tries to work out of the box as much as possible, but can be configured to work with any codebase.","sidebar":"docsSidebar"},"config/libs":{"id":"config/libs","title":".flowconfig [libs]","description":"Configure which library definition files Flow should use when type checking your code.","sidebar":"docsSidebar"},"config/lints":{"id":"config/lints","title":".flowconfig [lints]","description":"Configure lint rule severities in the .flowconfig [lints] section.","sidebar":"docsSidebar"},"config/options":{"id":"config/options","title":".flowconfig [options]","description":"Reference for all available .flowconfig [options] settings, including type checking behavior, module resolution, and more.","sidebar":"docsSidebar"},"config/untyped":{"id":"config/untyped","title":".flowconfig [untyped]","description":"Configure Flow to skip typechecking for files matching specified patterns while still allowing them to be imported as the any type.","sidebar":"docsSidebar"},"config/version":{"id":"config/version","title":".flowconfig [version]","description":"Pin your project to a specific Flow version using the .flowconfig [version] section.","sidebar":"docsSidebar"},"declarations/index":{"id":"declarations/index","title":"Declaration Files","description":"A declaration file is a .flow file that declares the types of a module separately from its implementation. Use one to add types to a module you cannot or do not want to annotate directly.","sidebar":"docsSidebar"},"editors/index":{"id":"editors/index","title":"Editors","description":"How to integrate Flow with your code editor.","sidebar":"docsSidebar"},"enums/defining-enums":{"id":"enums/defining-enums","title":"Defining enums","description":"How to define Flow Enums, including str
1ing, number, boolean, bigint, and symbol member types.","sidebar":"docsSidebar"},"enums/index":{"id":"enums/index","title":"Flow Enums","description":"Define a fixed set of constants which create their own type. Exhaustively checked in switch statements.","sidebar":"docsSidebar"},"enums/migrating-legacy-patterns":{"id":"enums/migrating-legacy-patterns","title":"Migrating from legacy patterns","description":"How to migrate from legacy JavaScript enum patterns like Object.freeze to Flow Enums.","sidebar":"docsSidebar"},"enums/using-enums":{"id":"enums/using-enums","title":"Using enums","description":"How to use Flow Enums: accessing members, using as type annotations, exhaustive checking, methods, and more.","sidebar":"docsSidebar"},"errors/index":{"id":"errors/index","title":"Error Suppressions","description":"A suppression is a special comment placed on the line before a Flow type error that tells Flow not to report it. Suppressions are unsafe \u2014 they hide real type errors as well as false positives \u2014 so use them only when you are confident your code is correct but Flow is erroring too conservatively.","sidebar":"docsSidebar"},"faq":{"id":"faq","title":"FAQ","description":"Have a question about using Flow? Check here first!","sidebar":"docsSidebar"},"flow-vs-typescript":{"id":"flow-vs-typescript","title":"Flow for TypeScript Users","description":"Flow vs. TypeScript: how object exactness, variance defaults, `as` casts, type guards, and Flow\'s `component`/`hook`/`renders` syntax differ from TypeScript.","sidebar":"docsSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"Get up and running with Flow, a typed dialect of JavaScript, in a few minutes. Set up a compiler, install flow-bin, and start catching errors with static types.","sidebar":"docsSidebar"},"glossary":{"id":"glossary","title":"Glossary","description":"A short glossary of Flow terminology, with one-sentence definitions, links to the full reference pages, and notes on how a concept relates to TypeScript.","sidebar":"docsSidebar"},"index":{"id":"index","title":"Documentation","description":"Guides and references for all you need to know about Flow","sidebar":"docsSidebar"},"lang/annotation-requirement":{"id":"lang/annotation-requirement","title":"Annotation Requirement","description":"Understand when Flow requires explicit type annotations under Local Type Inference and when types can be inferred automatically.","sidebar":"docsSidebar"},"lang/declaration-merging":{"id":"lang/declaration-merging","title":"Declaration Merging","description":"How Flow merges multiple declarations of the same name \u2014 interfaces, classes, and namespaces.","sidebar":"docsSidebar"},"lang/depth-subtyping":{"id":"lang/depth-subtyping","title":"Object Subtyping","description":"How Flow handles subtyping for objects, including depth subtyping with read-only properties and width subtyping.","sidebar":"docsSidebar"},"lang/nominal-structural":{"id":"lang/nominal-structural","title":"Nominal & Structural Typing","description":"How Flow uses nominal typing for classes and structural typing for objects and interfaces.","sidebar":"docsSidebar"},"lang/refinements":{"id":"lang/refinements","title":"Type Refinements","description":"How Flow narrows types based on conditional checks, typeof, equality, and other runtime tests.","sidebar":"docsSidebar"},"lang/subtypes":{"id":"lang/subtypes","title":"Subsets & Subtypes","description":"How subtypes and supertypes work in Flow\'s type system, including implicit and explicit subtyping relationships.","sidebar":"docsSidebar"},"lang/type-hierarchy":{"id":"lang/type-hierarchy","title":"Type Hierarchy","description":"A visual overview of Flow\'s type hierarchy showing the subtyping relationships between all built-in types.","sidebar":"docsSidebar"},"lang/types-and-expressions":{"id":"lang/types-and-expressions","title":"Types & Expressions","description":"How types and expressions interact in Flow, including how operations on values produce new types.","sidebar":"docsSidebar"},"lang/variables":{"id":"lang/variables","title":"Variable Declarations","description":"How Flow types var, let, and const variable declarations, including reassignment behavior.","sidebar":"docsSidebar"},"lang/variance":{"id":"lang/variance","title":"Type Variance","description":"How type variance (covariance, contravariance, invariance) works in Flow\'s type system.","sidebar":"docsSidebar"},"libdefs/creation":{"id":"libdefs/creation","title":"Creating Library Definitions","description":"How to create your own library definitions for third-party code, including declare syntax for modules, classes, and functions.","sidebar":"docsSidebar"},"libdefs/index":{"id":"libdefs/index","title":"Library Definitions","description":"Learn how to create and use library definitions for the third-party code your co
1de depends on.","sidebar":"docsSidebar"},"linting/flowlint-comments":{"id":"linting/flowlint-comments","title":"Flowlint Comments","description":"Control lint rule severity within a file using flowlint, flowlint-line, and flowlint-next-line comments.","sidebar":"docsSidebar"},"linting/index":{"id":"linting/index","title":"Linting Overview","description":"Learn how to configure Flow\'s linter to find potentially harmful code.","sidebar":"docsSidebar"},"linting/rule-reference":{"id":"linting/rule-reference","title":"Lint Rule Reference","description":"Reference for all available Flow lint rules, including ambiguous-object-type, sketchy-null, unclear-type, and more.","sidebar":"docsSidebar"},"linting/strict-import-export-lints":{"id":"linting/strict-import-export-lints","title":"Strict ES Module Import/Export Lints","description":"Lint rules that enforce stricter ES module import and export usage, requiring the experimental.strict_es6_import_export option.","sidebar":"docsSidebar"},"match/index":{"id":"match/index","title":"Match Expressions and Statements","description":"match an input value against a series of patterns, which conditionally check the structure of the input and extract values, and either produce an expression (match expressions) or execute a block (match statements).","sidebar":"docsSidebar"},"match/migration":{"id":"match/migration","title":"Migration from existing patterns","description":"You can migrate from switch statements and conditional expressions to match expressions and statements","sidebar":"docsSidebar"},"match/patterns":{"id":"match/patterns","title":"Match Patterns","description":"Match patterns both define a condition that must be matched, and new variables that are extracted (like destructuring).","sidebar":"docsSidebar"},"modernizing-legacy-syntax":{"id":"modernizing-legacy-syntax","title":"Modernizing Legacy Flow Syntax","description":"Reference for migrating Flow\'s $-prefixed utility types and other legacy syntax forms to their modern equivalents \u2014 what\'s been removed, what\'s been deprecated, and what\'s discouraged.","sidebar":"docsSidebar"},"react/component-syntax":{"id":"react/component-syntax","title":"Component Syntax","description":"How to use Flow\'s component syntax to declare React components with built-in type system support for props, refs, and render types.","sidebar":"docsSidebar"},"react/component-types":{"id":"react/component-types","title":"Component Types","description":"How to use Component Types to describe the type of a React component, useful for library definitions and higher-order components.","sidebar":"docsSidebar"},"react/events":{"id":"react/events","title":"Event Handling","description":"How to type React event handlers and synthetic events in Flow.","sidebar":"docsSidebar"},"react/function-and-class-components":{"id":"react/function-and-class-components","title":"Function/Class Components","description":"Legacy patterns for typing React function and class components in Flow, including props, default props, and state.","sidebar":"docsSidebar"},"react/hoc":{"id":"react/hoc","title":"Higher-order Components","description":"How to type React higher-order components in Flow using Component Types.","sidebar":"docsSidebar"},"react/hook-syntax":{"id":"react/hook-syntax","title":"Hook Syntax","description":"How to use Flow\'s hook syntax for first-class React hook declarations with built-in Rules of React enforcement.","sidebar":"docsSidebar"},"react/index":{"id":"react/index","title":"Using React with Flow","description":"Learn how to use Flow to effectively type common and advanced React patterns.","sidebar":"docsSidebar"},"react/multiplatform":{"id":"react/multiplatform","title":"Multi-platform Support for React Native","description":"Flow\'s support for multiple platforms inside a single React Native codebase"},"react/refs":{"id":"react/refs","title":"Refs","description":"How to type React refs in Flow: the useRef hook and its React.RefObject return type, accepting a ref with React.RefSetter, callback refs, and reading ref.current.","sidebar":"docsSidebar"},"react/render-types":{"id":"react/render-types","title":"Render Types","description":"How to use render types to constrain what a React component can render, enforcing composition rules at the type level.","sidebar":"docsSidebar"},"react/types":{"id":"react/types","title":"React Type Reference","description":"Reference for all React utility types exp
1orted by Flow, including React.Node, React.MixedElement, and more.","sidebar":"docsSidebar"},"strict/index":{"id":"strict/index","title":"Flow Strict","description":"Learn how to enable stricter type checking on a file-by-file basis.","sidebar":"docsSidebar"},"tools/babel":{"id":"tools/babel","title":"Babel","description":"How to set up Babel to strip Flow type annotations from your code.","sidebar":"docsSidebar"},"tools/eslint":{"id":"tools/eslint","title":"ESLint","description":"How to set up ESLint with flow-eslint to lint Flow-typed JavaScript code.","sidebar":"docsSidebar"},"tools/flow-remove-types":{"id":"tools/flow-remove-types","title":"flow-remove-types","description":"How to use flow-remove-types, a lightweight CLI tool for stripping Flow type annotations without Babel.","sidebar":"docsSidebar"},"tools/index":{"id":"tools/index","title":"Tools","description":"Detailed guides, tips, and resources on how to integrate Flow with different JavaScript tools.","sidebar":"docsSidebar"},"tools/prettier":{"id":"tools/prettier","title":"Prettier","description":"How to set up Prettier to format Flow-typed JavaScript code, including support for the latest Flow features.","sidebar":"docsSidebar"},"tools/swc":{"id":"tools/swc","title":"SWC","description":"How to use SWC to parse Flow syntax and strip Flow type annotations from your code.","sidebar":"docsSidebar"},"types/aliases":{"id":"types/aliases","title":"Type Aliases","description":"How to create reusable type aliases in Flow to name complex types and use them throughout your code.","sidebar":"docsSidebar"},"types/any":{"id":"types/any","title":"Any","description":"How the any type works in Flow, why it is unsafe, and how to avoid it.","sidebar":"docsSidebar"},"types/arrays":{"id":"types/arrays","title":"Arrays","description":"How to type arrays in Flow, including Array<T> syntax, read-only arrays, and array utility types.","sidebar":"docsSidebar"},"types/casting":{"id":"types/casting","title":"Type Casting Expressions","description":"How to use type cast expressions in Flow to widen or assert types using the as keyword.","sidebar":"docsSidebar"},"types/classes":{"id":"types/classes","title":"Classes","description":"How to type classes in Flow, including class fields, methods, generics, and the relationship between class types and interface types.","sidebar":"docsSidebar"},"types/comments":{"id":"types/comments","title":"Comment Types","description":"How to write Flow type annotations inside comments, so your code runs without a compilation step.","sidebar":"docsSidebar"},"types/conditional":{"id":"types/conditional","title":"Conditional Types","description":"How to use conditional types in Flow to choose between two output types based on a type-level condition.","sidebar":"docsSidebar"},"types/const-expression":{"id":"types/const-expression","title":"Const Expressions","description":"How to use as const to create const-expressions that infer literal and read-only types in Flow.","sidebar":"docsSidebar"},"types/empty":{"id":"types/empty","title":"Empty","description":"How the empty (bottom) type works in Flow, representing a type with no values that is a subtype of all other types.","sidebar":"docsSidebar"},"types/functions":{"id":"types/functions","title":"Functions","description":"How to type functions in Flow, including parameters, return types, rest parameters, generics, and callable objects.","sidebar":"docsSidebar"},"types/generics":{"id":"types/generics","title":"Generics","description":"How to use generic (polymorphic) types in Flow to write reusable, type-safe functions, classes, and type aliases.","sidebar":"docsSidebar"},"types/index":{"id":"types/index","title":"Type Annotations","description":"Learn how to add Flow type annotations to your code: Primitives, Objects, Functions, Classes, and more.","sidebar":"docsSidebar"},"types/indexed-access":{"id":"types/indexed-access","title":"Indexed Access Types","description":"How to use indexed access types to extract a property type from an object, array, or tuple type.","sidebar":"docsSidebar"},"types/interfaces":{"id":"types/interfaces","title":"Interfaces","description":"How to use interfaces in Flow for structural typing of classes and objects, including implementing and extending interfaces.","sidebar":"docsSidebar"},"types/intersections":{"id":"types/intersections","title":"Intersections","description":"How to use intersection types in Flow to combine multiple types.","sidebar":"docsSidebar"}
1,"types/literals":{"id":"types/literals","title":"Literal Types","description":"How to use literal types in Flow to restrict values to specific strings, numbers, booleans, or bigints.","sidebar":"docsSidebar"},"types/mapped-types":{"id":"types/mapped-types","title":"Mapped Types","description":"How to use mapped types in Flow to transform object types or tuple types by iterating over their keys.","sidebar":"docsSidebar"},"types/maybe":{"id":"types/maybe","title":"Maybe Types","description":"How to use maybe types (?T) in Flow to represent values that can be null or undefined.","sidebar":"docsSidebar"},"types/modules":{"id":"types/modules","title":"Module Types","description":"How to import and export Flow types between modules, including type-only imports and CommonJS support.","sidebar":"docsSidebar"},"types/objects":{"id":"types/objects","title":"Objects","description":"How to type objects in Flow: exact vs inexact types, optional and read-only properties, indexers, object spread, and more.","sidebar":"docsSidebar"},"types/opaque-types":{"id":"types/opaque-types","title":"Opaque Type Aliases","description":"How to use opaque type aliases in Flow to hide the underlying type representation outside of the defining module.","sidebar":"docsSidebar"},"types/primitives":{"id":"types/primitives","title":"Primitive Types","description":"Reference for Flow\'s primitive types: boolean, string, number, null, void, symbol, and bigint.","sidebar":"docsSidebar"},"types/tuples":{"id":"types/tuples","title":"Tuples","description":"How to type tuples in Flow, including labeled elements, optional elements, variance, and spread syntax.","sidebar":"docsSidebar"},"types/type-guards":{"id":"types/type-guards","title":"Type Guards","description":"How to write type guard functions in Flow to create custom type predicates for use in refinements.","sidebar":"docsSidebar"},"types/typeof":{"id":"types/typeof","title":"Typeof Types","description":"How to use typeof types in Flow to extract the type of a value at the type level.","sidebar":"docsSidebar"},"types/unions":{"id":"types/unions","title":"Unions","description":"How to use union types in Flow to represent values that can be one of several different types.","sidebar":"docsSidebar"},"types/unknown":{"id":"types/unknown","title":"Unknown","description":"How the unknown type works in Flow as the safe supertype of all types, requiring refinement before use.","sidebar":"docsSidebar"},"types/utilities":{"id":"types/utilities","title":"Utility Types","description":"Reference for Flow\'s built-in utility types: keyof, Partial, Required, Readonly, Pick, Omit, Exclude, Extract, and more.","sidebar":"docsSidebar"}}}}')}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.