首先我们要知道常用的数据类型有哪些,平时我们在js中常用的也就bolean,string,number,undefined,null,arr
,在ts中增加了几种数据类型,比如:元组,枚举,以及数组的不同使用的方法
,下面一个一个来看:
首先有一点,ts中语法要求很严格,比如你定义一个字符串类型的变量,就不能再为他赋值为数值类型。再者比如你使用了一个未定义的变量或者方法也会直接报错,确实很规范化啊
1、字符串类型
为变量定义基本数据类型的时候一把都是下面这种格式 变量:=""
let a:string='my name is xiaoming'
console.log(a)
2、number类型
let b:number=13
// b='as' 报错 不能声明为其他类型的
console.log(b)
3、boolean类型
let c:boolean=false
c=true
console.log(c)
4、数组类型
数组类型和普通的数据类型有些区别,有两种定义方法,这里如果定义了number类型,那么就无法再给数组赋值为字符串类型的元素
let d:Array<number>=[1,2,3]
d=[3,4,5]
console.log(d)
let f:number[]=[1,2,3]
console.log(f)
5、元组类型
元组类型有些类似数组类型,是数组类型的扩展,需要注意的是这里定义了几个变量下边就只能写几个元素,如果不符合定义的规范,就会报错
let e:[number,string]
e=[1,'2']
console.log(e[0])
6、枚举类型
枚举类型 enum 这里主要是为了定义一些固定值 比如状态值,产品固定特性等,下面是具体使用的方法。如果枚举对象没有被赋值,那么打印出来的就是该元素的下标。
enum Color {Red='red', Green='green', Blue='blue'};
let g: Color = Color.Blue;
console.log(g); // 输出 blue
7、any类型
any是个什么类型呢,他可以说是一个万能类型,就像原来什么都不写的时候,你无论给他什么类型,都不会出错,下面看看具体使用场景
let msg:any='123'
msg=true
console.log(msg)
可以看到他并没有报错,我们来看看下面的场景
如果你要获取dom元素,那么使用any再合适不过了
8、undefined null类型
let k:undefined
console.log(k)
let l:undefined
l=2 // 这样就会报错
//null同理
let k:null
k=2 //报错
//来看看混合使用的方法
let k:undefined | null | number
k=undefined //不报错
k=null//不报错
k=2//不报错
9、void类型
这是一个奇怪的类型,叫做不返回值类型,什么意思呢,可以简单的理解为这个函数没有做任何实际性的操作,比如下面这样:
function a():void{
console.log("a")
}
//像这样没有任何实际影响的方法就用void
function b():number{
return 123
}
//我们知道ts是非常严格的,会去检查你的代码是否有错,当你上边方法定义的返回数值类型,里边返回的是字符串类型,这样是会报错的。
10、never类型
这种类型主要针对那些无限循环或者抛出异常,无法执行到终点的事件
let x: never;
let y: number;
// 运行错误,数字类型不能转为 never 类型
x = 123;
// 运行正确,never 类型可以赋值给 never类型
x = (()=>{ throw new Error('exception')})();
// 运行正确,never 类型可以赋值给 数字类型
y = (()=>{ throw new Error('exception')})();
// 返回值为 never 的函数可以是抛出异常的情况
function error(message: string): never {
throw new Error(message);
}
// 返回值为 never 的函数可以是无法被执行到的终止点的情况
function loop(): never {
while (true) {}
}