TS2559: Type ‘{ children: string; }‘ has no properties in common with type ‘IntrinsicAttributes & Fi

在使用TypeScript开发React函数式组件时,遇到类型不匹配的问题。具体表现为`children`属性在`IntrinsicAttributes & FilterTagPropsType`中未定义。解决方法是为子组件`FilterTag`定义接口,明确其接受的`children`和`key`属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Type '{ children: string; key: string; }' is not assignable to type 'IntrinsicAttributes & FilterTagPropsType'.
Property 'children' does not exist on type 'IntrinsicAttributes & FilterTagPropsType'.ts(2322)

export const Filter: React.FC<PropsType> = ({ title, tags }) => {
  return (
    <div>
      <Text style={{ marginRight: 40, fontSize: 15, fontWeight: 500 }}>
        {title} :{" "}
      </Text>
      {tags.map((t, index) => {
        if (index === tags.length - 1)
          return <FilterTag key={`filter${index}`}>{t}</FilterTag>;  // ====>报错
        return (
          <span key={`filter${index}`}>
            <FilterTag>{t}</FilterTag>
            <Divider type="vertical" />
          </span>
        );
      })}
    </div>
  );
};

解决办法:给子组件FilterTag手动加完善类型:

interface FilterTagPropsType {
  children?: string;
  key?: string;
}

使用 TypeScript 开发 React 函数式组件-云海天教程 (yht7.com)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值