typescript学习:类型推断,类型断言,类型保护,命名空间模块

本文详细探讨了TypeScript中的类型推断,类型断言及其应用场景,包括联合类型和继承关系的断言。同时,介绍了类型保护的原理与常见机制,如'in'、'typeof'、'instanceof'等。此外,还讲解了命名空间模块的概念,用于创建单独的作用域防止命名冲突,并学习了如何导出内部的类和函数。
摘要由CSDN通过智能技术生成

本文内容如下

类型推断,类型断言,类型保护,命名空间模块

如果你都有了答案,可以忽略本文章,或去TS学习地图寻找更多答案


类型推断

不写注解,TS会自动帮推断出类型

let x = 123  //推断为数字类型
let x = [0, 1, null] //推断为联合类型


最佳通用类型
class Animal{
   
    numlegs:number
}

class Bee extends Animal{
   }
class Lion extends Animal{
   }

let zoo = [new Bee(), new Loin()] //推断出联合类型
let zoo: Animal[] = [new Bee(), new Loin()]  //声明类型

类型断言 type assertion

定义:告诉编译器,你比它更了解类型,它不应该再发生错误,也就是该代码在运行时,会得到该结果.
语法:使用 as
场景:联合类型,ts不知道是什么时

ts拒绝可能,拥抱肯定

写法一:
如果不断言,可能拿不到length,因为有可能传number
function getLength(input:number | string):number{
   
    const str = input as String  //断言为string
    if(str.length){
    //可以使用string的length
        return str.length
    }else{
   
        const number as Number  //断言为number
        return number.toString().length
    }
}

写法二:断言写法二
function getLength(input:number | string):number{
   
    if((<string
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值