typeScript学习-类型守卫
typeScript学习
类型守卫
为什么要用类型守卫:
类型守卫定义:在 语句的块级作用域【if 语句内或条目运算符表达式内】 缩小变量的一种类型推断的行为。
类型守卫产生时机:TS 条件语句中遇到下列条件关键字时,会在语句的块级作用域内缩小变量的类型。这种类型推断的行为称作类型守卫(Type Guard)。
类型守卫可以帮助我们在块级作用域中获得更为需要的精准变量类型。
-
实例判断:instanceof
class Customer { pay(payMethod: BankPay | MobilePay) { // payMethod // 为 BankPay | MobilePay if (payMethod instanceof BankPay) { // payMethod // 为 BankPay } else if (payMethod instanceof MobilePay) { // payMethod // 为 MobilePay } } }
-
属性或方法判断:in
class Customer { pay(payMethod: BankPay | MobilePay) { if ("xx" in payMethod) { // payMethod // 为 MobilePay } } }
-
类型判断:typeof
-
字面量相等判断:==、===、≠、=≠=
function cal(num: string | number) { // num = num + 10 // 错误 if (typeof num === 'number') { num + 3 } } export { }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现