详解ts中简单数据类型
1、类型声明
let b:number //仅声明 let c:boolean=true //声明并赋值 function fun(name:string,age:number) //形参类型声明
2、自动类型判断
let b=23; //b的类型自动为number,不能给b赋值其他类型
3、字面量声明(字面量就是常量)
//方式一 let c:12; //方式二 const b=12;
4、any类型
let a:any; //显示声明any类型 let b //隐式声明any类型
any类型的变量可以赋值任何类型
any类型有隐患:any类型初始化后,可以将any类型的值赋给别的类型变量,可能造成其他变量类型混乱
// any类型赋值给b,造成隐患:b的类型变了 let a:any=123; let b:boolean; b=a; console.log(typeof a) //number console.log(typeof b) //number
5、unknown类型
unknown类型的变量与any一样,可以赋值任何类型。
与any类型不同的是,unkown类型初始化后,不能直接赋值给别的类型,编译会报错,但可以在条件语句中,赋给别的类型
let a:unknown=true; let b:boolean; // b=a; 编译报错 if(typeof a ==='boolean'){ b=a; } console.log(b); //true console.log(a); //true
6、ts中的类型断言
上节课我们知道,想把unkonwn类型赋值给别的类型,不能直接赋值,要放在if语句块中
而有了类型断言,可以直接这样写:b=a as number,等于告诉解析器,a我保证是number,你直接赋值过去就行,但如果a不是number也会直接赋值,可能造成隐患
let a:unknown=true; let b:boolean; b=a as boolean; //ok,编译通过
可能有隐患
let a:unknown=123; let b:boolean; b=a as boolean; //如果a类型不是布尔会造成隐患:b的类型变了
7、ts中的函数
1)对函数中形参进行类型声明
function sum(x: number, y: number) { return x + y } //调用时,会对实参类型以及个数进行检查,类型不对报错,多参或少参都报错 sum(1) //错 sum("1", "2") //错 sum(1, 2) //对
2)函数中返回值类型的声明,有以下几种情况
A:声明返回值类型,类型放在函数后面
function fun2():string{ return "123"; }
B:返回值为void
function fun(): void { return 'a';//报错 return 123;//报错 return true;//报错 return NaN;//报错 return undefined;//不报错 return null;//不报错 return;//不报错 }
C:不设置返回值类型,但是有返回值,此时TS解析器会以返回值的类型作为函数返回值类型
function sum(x: number, y: number) { return x + y //默认返回值为number }
D:返回值类型为 never,永远不会返回结果,只有报错才满足(了解)
function fun():never{ throw new Error("出错了!!"); //程序报错代码立即结束,结束以后就不会有返回值了,用的较少,知道就行 }
浙公网安备 33010602011771号