最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Typescrit从入门到放弃系列(二)-基础类型

    正文概述 掘金(golderBrother)   2021-01-02   569

    TS中冒号后面的都为类型标识

    一.布尔、数字、字符串类型

    let bool:boolean = true;
    let num:number = 10;
    let str:string = 'hello zf';
    

    二.元组类型

    限制长度个数、类型一一对应

    let tuple:[string,number,boolean] = ['james',18,true];
    // 像元组中增加数据,只能增加元组中存放的类型
    tuple.push('深圳');
    

    三.数组

    声明数组中元素数据类型

    let arr1:number[] = [1,2,3];
    let arr2:string[] = ['1','2','3'];
    let arr3:(number|string)[] = [1,'2',3];
    let arr4:Array<number | string> = [1,'2',3]; // 泛型方式来声明
    

    四.枚举类型

    enum USER_ROLE {
        USER, // 默认从0开始
        ADMIN,
        MANAGER
    }
    // {0: "USER", 1: "ADMIN", 2: "MANAGER", USER: 0, ADMIN: 1, MANAGER: 2}
    

    可以枚举,也可以反举

    // 编译后的结果
    (function (USER_ROLE) {
        USER_ROLE[USER_ROLE["USER"] = 0] = "USER";
        USER_ROLE[USER_ROLE["ADMIN"] = 1] = "ADMIN";
        USER_ROLE[USER_ROLE["MANAGER"] = 2] = "MANAGER";
    })(USER_ROLE || (USER_ROLE = {}));
    

    异构枚举

    enum USER_ROLE {
        USER = 'user',
        ADMIN = 1,
        MANAGER,
    }
    

    常量枚举

    const enum USER_ROLE {
        USER,
        ADMIN,
        MANAGER,
    }
    console.log(USER_ROLE.USER)// console.log(0 /* USER */);
    

    五.any类型

    不进行类型检测

    let arr:any = ['james',true,{name:'golderbrother'}]
    

    六.null 和 undefined

    任何类型的子类型,如果strictNullChecks的值为true,则不能把null 和 undefined付给其他类型

    let name:number | boolean;
    name = null;
    

    七.void类型

    只能接受null,undefined。一般用于函数的返回值

    let a:void;
    a = undefined;
    

    八.never类型

    任何类型的子类型,never代表不会出现的值。不能把其他类型赋值给never

    function error(message: string): never {
        throw new Error("err");
    }
    function loop(): never {
        while (true) { }
    }
    function fn(x:number | string){
        if(typeof x == 'number'){
    
        }else if(typeof x === 'string'){
    
        }else{
            console.log(x); // never
        }
    }
    
    function error(message: string): never {
        throw new Error("err");
    }
    function loop(): never {
        while (true) { }
    }
    function fn(x:number | string){
        if(typeof x == 'number'){
    
        }else if(typeof x === 'string'){
    
        }else{
            console.log(x); // never
        }
    }
    
    function error(message: string): never {
        throw new Error("err");
    }
    function loop(): never {
        while (true) { }
    }
    function fn(x:number | string){
        if(typeof x == 'number'){
    
        }else if(typeof x === 'string'){
    
        }else{
            console.log(x); // never
        }
    }
    

    九.Symbol类型

    Symbol表示独一无二

    const s1 = Symbol('key');
    const s2 = Symbol('key');
    console.log(s1 == s2); // false
    

    十.BigInt类型

    const num1 = Number.MAX_SAFE_INTEGER + 1;
    const num2 = Number.MAX_SAFE_INTEGER + 2;
    console.log(num1 == num2)// true
    
    
    let max: bigint = BigInt(Number.MAX_SAFE_INTEGER)
    console.log(max + BigInt(1) === max + BigInt(2))
    

    十一.object对象类型

    object表示非原始类型

    let create = (obj:object):void=>{}
    create({});
    create([]);
    create(function(){})
    

    起源地下载网 » Typescrit从入门到放弃系列(二)-基础类型

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元