TypeScript实用技巧

1. is关键字

is关键字可用来判断并限定值的类型,比如:

function user0(name: any): name is string {
   
  return name === 'lili'
}
function user1(name: any): boolean {
    
  return name === 'lili'
}
function getUserName(name: string | number) {
   
  if(user0(name)) {
   
    console.log(name)
    console.log(name.length)
    /**
     * 若换成user1(name) boolean就会报错
     * Property 'length' does not exist on type 'string | number'.
     * Property 'length' does not exist on type 'number'.
     */
  }
}
getUserName('lili')

is关键字和boolean的区别大概就在于is可以限定值的类型,类似于boolean+类型断言的作用

2. 可辨识联合类型

为可辨识的特征创建适合的联合类型

interface Info {
   
    username: string
}
// bad
interface UserAction {
   
    id?: number
    action: 'create' | 'delete'
    info: Info
}

// good
type UserAction = {
   
    id: number
    action: 'delete'
    info: Info
} |
{
   
    action: 'create'
    info: Info
}
const UserReducer = (userAction: UserAction) => {
   
    switch (userAction.action) {
   
        case 'delete':
            console.log(userAction
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值