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

React+TypeScript中select标签设置size属性报ts(2322)错如何解决

报错原因

React 对<select>标签的TypeScript类型定义中,size属性的类型约定为number | undefined,你当前代码里写的size="2"是字符串格式,和要求的类型不匹配,因此触发TS2322类型报错。
原生HTML中允许给size传字符串值,浏览器会自动做类型转换,但React+TS的JSX语法校验会严格执行类型规则,不接受字符串类型的size值。

修复方法

直接把size的属性值从字符串改为数字格式,在JSX中用花括号包裹数字值即可:

export default function StatesSelect(){
  return(
    <StatesSelectStyled>
      <label htmlFor="">Primeiro gostaríamos de saber em qual estado você trabalha</label>
      {/* 修正:size传入数字类型值 */}
      <select name="estados" size={2}>
        <option value="default"></option>
        {/* 其余选项内容正常编写即可 */}
      </select>
    </StatesSelectStyled>
  )
}

如果是动态绑定size值,只需要保证绑定的变量是数字类型即可,例如用state存储size值时,要将类型标注为number:

// 正确:state类型为number
const [selectSize, setSelectSize] = useState<number>(2);

// 使用
<select name="estados" size={selectSize}>

内容的提问来源于stack exchange,提问作者Marcelo Barbosa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:21:37