簡體   English   中英

如何在 React/Typescript 中使用導入的類型

[英]How to use imported type in React/Typescript

import { IoLogOutOutline } from 'react-icons/io5';    
import { IconType } from 'react-icons';

如何使用導入的類型“圖標類型”?

(alias) type IconType = (props: IconBaseProps) => JSX.Element

將圖標類型設置為 JSX.Element 時,我可以將圖標作為道具傳遞。

type LinkProps = {
    to: string;
    icon?: JSX.Element;
};

<Link to="logout" icon={<IoLogOutOutline />} />

但是,如果我將其設置為“圖標類型”,則會返回錯誤:

"Type 'Element' is not assignable to type 'IconType'.
  Type 'ReactElement<any, any>' provides no match for the signature '(props: IconBaseProps): Element'.ts(2322)"

IconType是一個 function 類型,它返回一些道具並期望一個元素,因此請嘗試將 function 傳遞給圖標道具icon={() => <IoLogOutOutline />}

import { IoLogOutOutline } from 'react-icons/io5';    
import { IconType } from 'react-icons';

type LinkProps = {
    to: string;
    icon?: IconType;
};

function Link(props: LinkProps) {
    return ...;
}

<Link to="logout" icon={() => <IoLogOutOutline />} />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM