Typescript-基础类型

124 阅读1分钟

对类型进行校验

布尔值

let bool:boolean = true;

数值类型

let num:number = 12;
num = 0b1111011;
num = 0o173;
num = 0x7b;

字符串类型

let str:string = 'abc'
str = `数值是${num}` //也可以使用字符串模板

数组类型

let arr1:number[] = [1,2,3,4]
let arr2:Array<number>[] = [1,2,3]
let arr3:(string|number)[] = [1,'a']

元组类型

let tuple:[string,number] = ['a',1]

枚举类型

enum Roles {
    SUPER_ADMIN, //0
    ADMIN, //1
    USER //2
}

console.log(Roles.USER) // 2
//也可以指定索引
enum Roles {
    SUPER_ADMIN = 1, //1
    ADMIN, //2
    USER //3
}

console.log(Roles.USER) // 3
//特别注意 这个部分 第二个索引设置了4后面的数据索引依然递增,而第一位索引依然是0
enum Roles {
    SUPER_ADMIN, //0
    ADMIN = 4, //4
    USER //5
}

console.log(Roles.USER) // 5

any类型

let value:any = 1;
value = true;
value = 'abc';
//可以为任意类型

void类型

const consoleText = (text:string):void => {
    console.log(text)
}

consoleText('abc')
//void指的是没有任何return的值 

null和undefined

//既是值也是类型 
//付给其他值会报错
let u:undefined = undefined;
let n:null = null;

never类型

// 永远不存在的值
// 是任何类型的子类型
const errorFun = (message:string):never => {
    throw new Error(message)
}

object

function getObject(obj:object):void{
    console.log(obj)
}

类型断言

//(<string>target)
//(target as string)
//两种都是可以的
const getLength = (target:string | number):number => {
    if ((<string>target).length || (targer as string).length === 0 ){
        return (<string>target).length
    } else {
        return target.toString().length
    }
}
getLength('abc');
getLength(123);