You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Iconify React搭配Eva图标使用时出现TS2741类型错误缺少fr属性

报错原因

类型“{ icon: IconifyIcon; }”缺少属性“fr”,但该属性在类型“Pick<IconProps, "string" | "children" | "className" | "style" | "display" | "overflow" | "visibility" | "order" | "color" | "width" | "height" | "fontFamily" | "fontSize" | ... 465 more ... | "vAlign">”中是必需的。Typescript错误码:TS2741

该报错由@iconify/react@3.1.0的类型定义与React 18+的类型定义不兼容导致:React 18的CSS属性类型新增了fr等CSS Grid相关属性的校验,而旧版@iconify/react未将这些属性标记为可选,触发了TS类型校验错误。

解决方案

按推荐优先级排序如下:

  • 方案1:升级@iconify/react到最新稳定版
    官方已在后续版本修复该类型兼容问题,直接升级依赖即可解决,执行对应包管理器的安装命令:
    # npm
    npm install @iconify/react@latest
    # yarn
    yarn add @iconify/react@latest
    # pnpm
    pnpm add @iconify/react@latest
    
  • 方案2:锁定@types/react版本(仅适用React 17项目)
    如果项目实际使用React 17版本,可将@types/react依赖版本锁定到17.x区间,避免引入React 18新增的类型校验规则。
  • 方案3:临时绕开类型校验
    若暂时无法升级依赖,可选择以下任意一种方式临时规避校验:
    1. 给Icon组件增加类型断言:
    import { Icon } from '@iconify/react';
    import plusFill from '@iconify/icons-eva/plus-fill';
    
    const App = () => {
      return (
        <Icon icon={plusFill} {...{} as any} />
      )
    }
    
    1. 在tsconfig.json的compilerOptions配置项中开启跳过库类型校验:
    {
      "compilerOptions": {
        "skipLibCheck": true
      }
    }
    

内容的提问来源于stack exchange,提问作者Abhijit Desai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:57:01