说明
当我们不知道状态的初始值是什么,将useState函数参数的初始值设置为null是一个常见的做法。可以通过具体类型联合 null来做显示注解。
例如:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/214ee8e6853342fa91888aded2c02e2a.png)
1)限制useState函数参数的初始值可以是User、或者null。
2)限制setUser函数的参数类型可以是User、或者null。
示例
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/22e3819cfb444147a8748e252836e5cf.png)
使用user的时候,给出提示:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cd1ebb2c1dd34c6a9f28f2e0faf58c64.png)
如果选择age,然后回车,编辑器自动补充了一个可选链语法user?.age
,这个是为了类型安全,只有user不为null(不为空值)的时候,才进行点运算:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/993be1eb7be046f484c744a0e3735754.png)
将鼠标移到user上方,给出提示,可能是User类型,也可能是null:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/89deb4ad490747c3aadcaf99788286cc.png)