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

TypeScript解构数组时如何仅为第一个元素定义类型

解决useState解构时指定第一个元素类型并保留setter自动推断的问题

原代码编译失败的核心原因是手动给解构数组错误指定了setter的类型({}),正确的做法是通过useState的泛型参数明确状态变量类型,让TypeScript自动推导setter的合法类型,无需手动给整个解构数组加类型注解。

正确实现代码

const [ethersProvider, setEthersProvider] = useState<ethers.providers.Web3Provider | undefined>();

关键说明

  • 给useState传入泛型参数<ethers.providers.Web3Provider | undefined>,直接明确了ethersProvider的类型范围
  • TypeScript会自动推断setEthersProvider的类型为React.Dispatch<React.SetStateAction<ethers.providers.Web3Provider | undefined>>,完全匹配React useState setter的标准类型,全程无需使用弱化类型的any
  • 该写法既满足了第一个元素的类型注解需求,又保留了setter的自动类型推断,规避了手动指定错误类型导致的编译失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:20:35