【问题标题】:How create a Typescrip type guard for a ReactElement type如何为 ReactElement 类型创建 Typescript 类型保护
【发布时间】:2023-01-23 02:40:18
【问题描述】:

我有三个打字稿类型守卫:

  const isTeaserOne = (teaser: Teaser): teaser is TeaserOneType =>
    typeof teaser === 'object' && teaser.type.includes('One');
  const isTeaserTwo = (teaser: Teaser): teaser is TeaserTwoType =>
    typeof teaser === 'object' && teaser.type.includes('Two');
  const isSpecialTeaser = (teaser: Teaser): teaser is SpecialTeaserType =>
    typeof teaser === 'function';

SpecialTeaserType 类型:

export type SpecialTeaser = ReactElement;

这种类型返回一个 jsx 组件:

copyArray[5] = <MyComponent />;

我如何为这个ReactElement创建类型保护?

【问题讨论】:

    标签: reactjs typescript typescript-types typeguards


    【解决方案1】:

    试试这个模式:

    interface Props {
      variant: “TypeOne” | “TypeTwo”
    }
    
    const MyComponent = (props: Props): JSX.Element => { 
    <>
      props.variant === “TypeOne” && return (/*JSX*/)
      props.variant === “TypeTwo” && return (/*JSX*/)
    </>
    }
      
      
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-11
      • 1970-01-01
      • 2020-02-01
      • 2021-01-22
      • 2019-01-04
      • 1970-01-01
      • 2022-12-18
      相关资源
      最近更新 更多