ts基本数据类型

// 布尔类型
let bool1:boolean = false;
let bool2:boolean;
bool2 = false

// 数值类型,支持二进制,八进制,十六进制的值
let num:number = 1234;
num = 0b1111011;
num = 0o173;
num = 0x7b;

// 字符串类型
let str:string;
str = 'abcd';
str = `数值是${num}`;
console.log(str);

// 数组类型
let arr:number[] = [ 1 , 3 , 5 ];
let arr2:Array<number> = [ 1 , 2 , 3 ];
let arr3:( string | number )[] = [ 1 , 'a' ];
let arr4:Array< string | number> = [ 'a' , 1 ];

// 元组类型,必须按顺序写,一一对应
let tuple : [ string , number , boolean ];
tuple = [ 'a' , 1 , true];   // 2.6版本之前越界元素只要是这个数组中任意一种就行,之后版本无论什么类型越界是不被允许的

// 枚举类型
// enum Roles {
//     SUPER_ADMIN,
//     ADMIN,
//     USER
// };
// console.log( Roles.SUPER_ADMIN );    // 0
// console.log( Roles.ADMIN );          // 1
// console.log( Roles.USER );           // 2

// enum Roles {
//     SUPER_ADMIN = 0,
//     ADMIN = 5, 
//     USER = 9
// };
// console.log( Roles.SUPER_ADMIN );    // 0
// console.log( Roles.ADMIN );          // 5
// console.log( Roles.USER );           // 9

enum Roles {
    SUPER_ADMIN,
    ADMIN = 5, 
    USER
};
console.log( Roles.SUPER_ADMIN );    // 0
console.log( Roles.ADMIN );          // 5
console.log( Roles.USER );           // 6     // 默认增加
console.log( Roles[5] );             // ADMIN 
       
// any类型
let value:any;
value = true;
value = 1;
value = 'hello world';
let arr5:any[] = [ 1 , true , '2'];

// void类型 
const func = ( text:string ):void => {     // 不返回任何值,没有return
    console.log( text );
}

let voidType:void;
voidType = undefined;
voidType = null;    // 这里是可以为null的,需要在tsconfig里面"strict": true注释掉

// undefined和null
let obj:undefined;
obj = undefined;
obj = null;
// obj = 123;        // 报错
let obj2:null;
obj2 = null;
obj2 = undefined;
// obj2 = 123        // 报错

// never类型   死循环或者抛出异常时,是任何类型的子类,并且没有子类

let errorFunc = ( message:string ):never => {
    throw new Error( message );
};

let infiniteFunc = ():never => {
    while(true){}
};

// object类型
let obj3:object = {
    name:'zhangsan'
}

// 类型断言,可以有以下两种写法<string>或者as string,react的jsx只支持as写法
let getLength = ( target : string | number ):number => {
    if ( ( <string> target ).length || ( target as string ).length === 0 ) {
        return ( <string> target ).length;
    } else {
        return target.toString().length;
    }
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值