首页 > 其他 > 详细

了不起的typescript

时间:2019-08-31 13:05:07      阅读:79      评论:0      收藏:0      [点我收藏+]
//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");
})()

  

 

了不起的typescript

原文:https://www.cnblogs.com/shaozhu520/p/11438242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!