//基础类型
//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]);
版权归属:
小狐狸
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区