//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