TypeScript如何将带null的联合类型值传给要求非空类型的函数参数
TypeScript 非空类型传参解决方案
以下是3种常用的实现方式,可根据场景选择:
- 方法1:使用非空断言操作符(
!)
这是最轻量的实现方式,在变量后加后缀!即可直接告知TypeScript该值一定不为null或undefined。该语法仅在编译阶段生效,不会添加任何运行时校验逻辑,需确保你确认变量实际一定非空再使用。
代码示例:my_func(value!); - 方法2:使用类型断言(
as)
你可以直接通过as string强制将变量的类型断言为string,效果和非空断言类似,同样无运行时校验:
代码示例:my_func(value as string); - 方法3:添加运行时非空判断(推荐优先使用)
如果不能100%保证后续逻辑变动不会导致变量出现null值,最安全的方式是添加非空判断,TypeScript会自动在判断成立的代码块内将变量类型收窄为string,同时也能避免运行时可能出现的空值报错:
代码示例:if (value !== null) { // 此代码块内value的类型会被自动推断为string my_func(value); }
内容的提问来源于stack exchange,提问作者kolypto
相关产品推荐
相关产品推荐

