美文网首页
其他类型

其他类型

作者: 苍老师的眼泪 | 来源:发表于2022-08-26 15:51 被阅读0次
    // void 表示没有返回值的函数的返回值类型
    function f1(): void {
        console.log('hello');
    }
    
    // 任何不是基元的值
    // string number bigint boolean symbol null undefined
    function f2(): object {
        return {}
    }
    
    // unknown 类型代表未知类型,与 any 相反,对 unknown 值做任何事情都是不合法的
    
    function f3(a: any) {
        a.b()   // 合法,可以通过编译
    }
    
    function f4(a: unknown) {
        a.b()   // 报错,a 的类型是未知的
    }
    
    function f5(s: string): unknown // 小心地对待返回值
    { 
        return JSON.parse(s)
    }
    
    // never 表示永远不会被观察到的值
    function f6(): never {
        throw 'error'
    }
    
    function f7(a: boolean) {
        if (a) {
            return 1
        } else {
            return 0
        } else {
            return x    // never
        }
    }
    
    // never 类型可以分配给任意类型,但是没有任何类型可以分配给 never 类型,除了 never 本身以外
    // 我们可以利用这一点做穷尽性检查:
    
    type users = 'Edison' | 'Kingway' | 'asdf'
    
    function greet(user: users) {
        switch(user) {
            case 'Edison':
                return 'Hello Edison';
            case 'Kingway':
                return 'Hi Kingway';
            default: 
                let _exhaustiveCheck: never = user
                return _exhaustiveCheck
        }
    }
    // 当 users 里面新增了 ’asfd‘ 是,就等于将 ’asdf‘ 分配给 never 类型的 _exhaustiveCheck,编译器便检查出问题。
    

    相关文章

      网友评论

          本文标题:其他类型

          本文链接:https://www.haomeiwen.com/subject/sayagrtx.html