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

TypeScript中如何为用作函数参数的String迭代器添加类型标注

解决TypeScript中解构参数的隐式any警告问题

针对你提供的首字母大写函数,要解决Binding element 'rest' implicitly has an 'any' type的警告,你可以通过两种方式为解构参数添加类型标注:

方式一:标注解构元组类型

直接为解构的参数指定元组类型,明确第一个元素和剩余元素的类型都是string:

function capitalizeFirstLetter([ first = '', ...rest ]: [string, ...string[]]) {
  return [ first.toUpperCase(), ...rest ].join('');
}

这里的[string, ...string[]]是剩余元组类型,既匹配解构的结构,又兼容字符串(因为字符串实现了可迭代接口,能被解构为单个字符组成的序列)。

方式二:标注可迭代类型

由于字符串属于Iterable<string>类型(迭代器返回单个字符的字符串),也可以直接给参数标注该类型:

function capitalizeFirstLetter([ first = '', ...rest ]: Iterable<string>) {
  return [ first.toUpperCase(), ...rest ].join('');
}

TypeScript会自动推断出first和rest的类型为string和string[],消除隐式any警告。

两种方式都能正常工作,第一种更精确地匹配解构的结构,第二种则更贴合字符串的可迭代特性,你可以根据需求选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 13:40:05