• Typescript 类型体操


    Typescript 类型体操

    在网上看了一圈资料,类型体操的大致思路就是
    通过extends结合三元运算符去判断与选择,通过never去过滤,通过keyof、obj[key] 去提取等等,通过这些运算最终得到更细粒度的类型值


    指定类型为某一个值

    // ts判断类型
    type isNumber<T> = T extends Number ? true : false
    type isTrue = isNumber<1>
    type getTrue = (n: Number) => isTrue
    const fnGetTrue: getTrue = (n: Number) => {
        return true
    }
    fnGetTrue(1)
    

    指定对象的键和值

    // ts 指定对象的键和值
    type obj = {
        name:'island',
        age:25
    }
    type keysOfObj = keyof obj // type keysOfObj = "name" | "age"
    type valuesOfObj = obj[keysOfObj] // type valuesOfObj = "island" | 25
    

    筛选出对象的某一类型的值

    type filterNumVal<T extends Object> = {
        [Key in keyof T]: T[Key] extends Number ? T[Key] : never
    }[keyof T]
    
    type getNumType = filterNumVal<{ island: 1, key2: 666, key3:'key3' }> // type getNumType = 1 | 666
    
  • 相关阅读:
    定位 -CLGeocoder
    定位
    定位
    定位- 汽车导航
    定位
    SVN
    githubRepository -- 使用
    git 常用指令
    ipad ------ 与iPhone的差别
    总结
  • 原文地址:https://www.cnblogs.com/ltfxy/p/16092909.html
Copyright © 2020-2023  润新知