【 TypeScript 】TypeScript的数据类型有哪些?

1. 是什么

ts和js 几乎一样,拥有相同的数据类型,另外在js基础上提供了更加实用的类型供开发使用

在开发阶段,可以为明确的变量定义某种类型,这样ts就能在编译阶段进行类型检查,当类型不符合预期结果的时候就会出现错误提示

2. 有哪些

typescript的数据类型主要有如下

  • boolean (布尔类型)
  • number(数字类型)
  • string (字符串类型)
  • array (数组类型)
  • tuple (元组类型)
  • enum (枚举类型)
  • any (任意类型)
  • null和undefined 类型
  • void 类型
  • never类型
  • object 类型

2.1 boolean (布尔类型)

let flag:boolean=true;
flag="12345" //错误
flag=false   //正确

2.2 number(数字类型)

数字类型和JS一样,ts的数值类型都是浮点数,可以支持二进制、八进制、十进制和十六进制

let flag:number=123;
flag="12345" //错误
flag=456   //正确

2.3 string (字符串类型)

和JS一样,可以使用双引号和单引号表示字符串

let str:string='12333';
str='hello'   //正确

作为超集,也可以使用模版字符串进行包裹,通过${}嵌入变量

let name:string='superrui';
let age:number=18;
let info:string=` hello my name is ${ name }`

2.4 array (数组类型)

跟JS一样,通过[]进行包裹,有两种写法:
方式一:元素类型后面接上[ ]

let arr:string[]=['11','22','33']
arr=['33','44','55']

方式二:使用数组泛型,Array<元素类型>:

let arr:Array<number> = [1,2];
arr=[3,4]

2.5 tuple (元组类型)

允许表示一个已知元素数量和类型的数组,各元素的类型不必相同

let tupleArr:[Number,String,boolean];
tupleArr=[12,'23',true] //ok
tupleArr=[12,'23'] //no

赋值类型、位置、个数需要和定义的类型、位置、个数 一致

2.6 enum (枚举类型)

是对JS标准数据类型的一个补充,使用枚举类型可以为一组数值赋予友好的名字

enum Color {red,green,yellow}
let A:Color=Color.red

2.7 any (任意类型)

可以指定任何类型的值,在编程阶段还不清楚类型的变量制定一个 类型,不希望类型检查器对这些值进行检查而直接让他们通过编译阶段的检查,这时候可以使用any类型
使用any类型允许被赋值为任意类型,甚至可以调用其属性、方法

let num:any=213;
num='str';
num=456

定义存储各种类型数据的数组时,代码如下:

let arrList:any[]=[1,'str',false];
arrList[1]=200

2.8 null和undefined 类型

在JS中null 是一个只有一个值的特殊 类型,表示一个控对象引用,而undefined表示一个没有设置值的变量
默认情况下 null 和 undefined 是所有类型的子类型,就是说你可以吧null和undefined赋值给number类型的变量

let num:number|undefined; //数值类型或者undefined

但是ts 配置了–strictNullChecks 标记。null和undefined只能赋值给void和他们各自

2.9 void 类型

用于标识方法返回值的类型,表示该方法没有返回值

function hi():void{
    alert ('hi rui ')
}

2.10 never类型

never是其他类型(包括null和undefined的子类型),可以赋值给任何类型,代表从不会出现的值
但是没有类型是never的子类型,这意味着never的变量只能被never类型所赋值。
never类型一般用来指定哪些总是会抛出异常、无限循环

let a:never;
a=123; //错误写法
a=(()=>{ //正确写法
    throw new Error('错误')
})

//返回never的函数必须存在无法到达的终点
function error(message:string):never{
    throw new Error(message)
}

2.11 object 类型

对象类型,非原始类型,常见的形式通过{}进行包裹

let obj:object;
obj={name:'superrui',age:18}

3. 总结

和JS基本一致,也分成:

  • 基本数据类型
  • 引用数据类型

在基础类型上,ts 添加了void any enum等原始类型

  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小超人rui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值