TypeScript中两种useState状态声明方式是否存在差异?
两种TypeScript useState声明方式的差异分析
这两种写法功能上完全等价,最终都会把guessedLetters的类型指定为string[],初始值都是空数组,实际开发中用哪种都可以,只是类型指定的方式不同:
- 第一种是显式传递泛型参数:
<string[]>直接告诉TypeScript,这个useState的状态类型是字符串数组,初始值[]会自动适配这个类型。 - 第二种是类型断言:
[] as string[]把原本会被推断为never[]的空数组,强制指定为string[],useState会基于这个断言后的类型来推导状态的类型。
额外提一句:如果初始值不是空数组(比如useState(["a"])),TypeScript会自动推断出类型是string[],这时候两种显式指定类型的写法都可以省略。
内容的提问来源于stack exchange,提问作者Elco
相关产品推荐
相关产品推荐

