侧边栏壁纸
博主头像
小狐狸 博主等级

行动起来,活在当下

  • 累计撰写 38 篇文章
  • 累计创建 21 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

TypeScript类型

小狐狸
2025-01-08 / 0 评论 / 0 点赞 / 11 阅读 / 0 字 / 正在检测是否收录...
//基础类型
//boolean,number,string,undefined,null,symbol
//对象类型:object,array,function,Class
//新类型:元组,枚举,any,void,never,unknown

//string类型
const msg:string = 'hello ts!!!'; //const是常量,不可修改
console.log(msg);


let msg1:string ='123'; //let是变量,可修改
msg1 = '456';
console.log(msg1);


const msgStr=`${msg} ${msg1}`; //模板字符串
console.log(msgStr);


//boolean类型
const bool:boolean = true;
let bool1:boolean = false;
bool1 = true;
console.log(`${bool} ${bool1}`);


//对象类型
const obj:object = {name:'ts'};
const obj1:object = {};
const obj2:{name:string} = {name:'ts'};

const obj3:{msg:string,num?:number}= {msg:'hello'}; //?表示可选,可选属性必须在必选属性后面
obj3.num = 123;
console.log(obj3);


//array类型
const arr:number[] = []; //数组元素只能是number
const arr1:string[] = ["1","2,","3"];  //数组元素只能是string

const arr2: (string | number)[] = ["1", 2]; //联合类型,数组元素可以是string或number
console.log(arr2);

/**
 null和undefined可以赋值给任何类型,如果strictNullChecks为true,null和undefined只能赋值给void和它们自己
 symbol是es6新增的数据类型,表示独一无二的值
 */



 //function类型
 //void不能分配给函数返回值
 function add(arg1:number,arg2:number):number{
    return arg1+arg2;

 }
 let arg=add(1,2);
 console.log(arg);

 //箭头函数写法
 const add1=(arg1:number,arg2:number):number=>{
    return arg1+arg2;
 }  

console.log(add1(1,2));

//匿名函数
//(arg1:number,arg2:number)是参数,number是返回值类型
const add2:(arg1:number,arg2:number)=>number=(arg1,arg2)=>{
    return arg1+arg2;
}


//函数重载
function toString(arg1:string,arg2:string):string{
    return arg1+arg2;
}
function toString(arg1:number,arg2:number):string{
    return arg1.toString()+arg2.toString();
}
function toString(arg1:any,arg2:any):any{
    return arg1+arg2;
}

//void类型
function fn():void{ //void表示没有返回值
    console.log('void');
}
let v: void;
//b=123;报错
//v=null;是一个空对象也不能赋值给void
v=undefined;



//never类型
function error(msg:string):never{ //never表示永远不会返回结果
    throw new Error(msg);
}


//unknown类型
let u:unknown = 123;
u = '123';
u = true;
u=null;
u=undefined;
if(typeof u === 'string'){
    console.log(u);
}else if(typeof u === 'number'){  
    u.toFixed(2);  
    console.log(u);
}else if(typeof u === 'boolean'){
    console.log(u);
}else if(typeof u === 'object' && u instanceof Array){
    u.join(',');
}

//any类型
let a:any = 123;
console.log(a.toFixed(4)); 
a = true;
console.log(a);
a = null;
console.log(a);
a=undefined;
console.log(a);

/**
 * any和unknown的区别 any可以调用任何方法,unknown需要先判断类型
*/




//元组类型(tuple)固定类型加长度的数组
const teacher:[string,string,number]=['tom','male',18];
console.log(teacher);




//枚举类型(enum)罗列出来的所有可能情况,并且他是一个常量
//性别:男,女,保密
//默认情况下,枚举值从0开始
//超过长度就会是undefined
enum Gender{
    Male,
    Female,
    Unknown
}
console.log(Gender.Male); //打印结果是0
console.log(Gender[1]); //打印结果是Female

enum Test{
    A=100, //设置了索引,后面的值会自动递增
    B,
    C
}
console.log(Test.A);
console.log(Test.B);
console.log(Test.C);
console.log(Test[100]);

0

评论区