//TypeScript-基本数据类型和报错解析 //基本数据类型 //let num = 25; /* let flo = 25.5; let hex = 0xf000; let binary = 0b1001; let octal = 0o733; */ //重新赋值 //num = ‘25‘;//不能存储非原有数据类型的数据 //ts 原型 //let num:number = 25; //等同于 let num = 25; //booleab //let islogin = false; let islogin:boolean = false; islogin = true; //string let str:string = "hello world"; str = "12"; let anything;//这样做是可以的 等同于 let anything:any anything = 25; anything = "hello";
//数组 元组 枚举 //数据 let names:Array<string> = ["shaozhu","douddouy","chixing"]; console.log(names); //names[0] = 100;//不能这样写 names[0] = "hhee";//这样写可以 let numbers:number[] = [1,2];//也可以这样写 数字数组 let anyarray :any[] = [1,true,"11"];//这样什么数据都可以写 //元组 let colors:[string,number] = ["try",99];//这个是按照顺序的 不能换顺序 //枚举 enum enum Color{ Black = 100, Yellow, Red, Blue } let myColor:Color = Color.Red; console.log(myColor);//值是 从0开始的
//TypeScript-函数类型 //函数的相关类型 //必须返回字符串 函数返回值的类型 function returnvalue():string{ return "hello"; } console.log(returnvalue()); //没有任何返回值 function sayhello():void{ console.log("hello !@"); } //参数类型 指定传的参数 function sumvalue(value1:number,value2:number):number{ return value1+value2; } console.log(sumvalue(10,6)); //函数类型 let myfunc:(a:number,b:number)=>number;// 声明传的参数和返回的类型 myfunc = sumvalue; //myfunc(10,20); console.log(myfunc(10,20));
//TypeScript-对象类型和type let dataobj:{name:string,age:number} = { name:"shaozhu", age:31 } dataobj = { name:"1222", age:25 }; //复杂的对象类型 let complex:{data:number[],myfunc:(item:number)=>number} = { data:[12,23,364,6564], myfunc:function(item:number):number{ return item+1; } } //type 生成类型 可以复用 type Mytype = {data:number[],myfunc:(item:number)=>number} let complex2:Mytype = { data:[12,23,364,6564], myfunc:function(item:number):number{ return item+1; } }
//TypeScript-never和null类型 //uni type 检查类型 null undefined never let uniintype:number|string|boolean = 12; uniintype = "12"; uniintype = false; //检查类型 let checktype = 10; if(typeof checktype == "number"){ console.log("1"); } //null 和 undefined let mynull = null; mynull = undefined; //never 类型 任何类型的子类型 //never never类型是任何类型的子类型 也可以赋值给任何类型 然后 没有类型是 //never 的类型或者可以赋值给never //另外 (处理never 本身之外) 即使any和不可以赋值给never //通常表现为抛出异常或无法执行到终止点 (例如无限循环) let x:never; //x = 123; //不能将其它类型转换为 never 类型 ///never 使用场景 抛出异常 function error(message:string):never{ throw new Error(message); } //死循环 function loop():never{ while(true){ } } //异常也是 never let y:number; y = (()=>{ throw new Error("message"); })()
原文:https://www.cnblogs.com/shaozhu520/p/11438242.html