import * as React from 'react'; /** * Our own alias for `JSXElement` type that is compatible with both React 17 and React 18+. * Use this type when annotating JSX markup in all our code in order to avoid issues between different React versions. * * Example usage: * * BAD: * ```tsx * const renderFoo = (state: FooState) =
Hello World
; * // infers * // R17: declare const renderFoo: (state: FooState) => JSXElement; * // R18+: declare const renderFoo: (state: FooState) => React.JSXElement; * ``` * * GOOD: * ```tsx * import type { JSXElement } from '@fluentui/utilities'; * const renderFoo = (state: FooState): JSXElement =
Hello World
; * ``` */ export type JSXElement = React.ReactElement; /** * Alias for `JSX.IntrinsicElements` keys that is compatible with both React 17 and React 18+. * Use this type to get the intrinsic element keys from React types in order to avoid issues * between different React versions. */ export type JSXIntrinsicElementKeys = Exclude; /** * Our own alias for `JSX.IntrinsicElements` type that is compatible with both React 17 and React 18+. * Use this type to get the intrinsic elements from React types in order to avoid issues * between different React versions. */ export type JSXIntrinsicElement = React.ComponentProps;