Typescript-04-基础数据类型三

简介

  • 本章介绍viodnullundefinedneverobject这五种数据类型

void

  • 某种程度上来说,void类型像是与any类型相反,它表示没有任何类型,当一个函数没有返回值时,你通常会见到其返回值是viod类型

    // 通过这样就可以很明确的表示该函数没有返回值
    function test():void {
        console.log("hello world");
    }
    test();
    
  • 声明一个void类型的变量没有什么大用,因为你只能为它赋予undefinednull"strict": false

    // 需要关闭ts配置文件的严格模式strict
    
    let value1:void;
    let value2:void;
    let value3:void;
    
    value1 = 1; // 报错
    value2 = undefined;
    value3 = null;
    

null和undefined

  • 默认情况下nullundefined是所有类型的子类型,就是说你可以把nullundefined赋值给number类型等的变量。

  • 当你指定了--strictNullChecks标记,nullundefined只能赋值给void和它们各自,这能避免很多常见的问题。也许在某处你想传入一个stringnullundefined,你可以使用联合类型string | null | undefined

    let value1:number;
    let value2:string;
    
    value1 = null;
    value2 = undefined;
    

never

  • never类型表示的是那些永不存在的值的类型, 例如never类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型;

    function demo():never {
        throw new Error('报错了')
    }
    demo();
    
  • 变量也可能是never类型,当它们被永不为真的类型保护所约束时

    function infiniteLoop(): never {
        while (true) {
            
        }
    }
    
  • never类型是任何类型的子类型,也可以赋值给任何类型;然而没有类型是never的子类型或可以赋值给never类型(除了never本身之外)。即使any也不可以赋值给never


object

  • 只能保存对象的数据类型

    let obj:object
    obj = 1; // 报错
    obj = "123"; // 报错
    obj = true; // 报错
    obj = {
        name:'lnj',
        age:33
    };
    console.log(obj);
    
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容