typescript属于静态类型语言,在编译时就会检查数据类型,与c、c++一样,而常用的js、python属于动态类型语言,运行时才会检查数据类型。使用ts可以帮助我们减少错误代码的生成,提高效率。下面主要介绍ts的一些原始数据类型。
ts的原始数据类型有number、boolean、string、undefined、null、bigint、symbol、object。
let flag:boolean = false
let age:number = 23
let firstname:string = 'marry'
let u:undefined = undefined
let n:null = null
1、any
另外,ts还有一个数据类型为any,它可以表示任意类型的变量,但要谨慎使用,否则和js差不多。
let a:any = 12 //赋值数字
a = 'maybe' //赋值字符串
a.set() //赋值函数
2、数组
ts中定义数组:
let arr:number[] = [1,2,3] //表示数组中的每个元素都是number类型
//可以使用数组的方法
arr.push(8) //只能添加number类型的数据
3、元组
ts中还有一个独特的数据类型:元组。数组把同一类型的数据整合到一起,而元组则是把指定类型的数据放在一起。
let arr1:[number,string] = [1,'happy']
let arr2:[number,string] = [1,'happy',2] //报错,多一项
//arr1仍可以使用数组的方法,但操作的数据必须是定义中包含的类型
arr1.push(2)
arr1.push(false) //报错
4、interface接口
ts中object类型的定义使用interface,对定义的object进行约束
//定义了一个person变量
interface Person{
readonly id: number; //readonly只读属性,不能修改
name:string;
age?:number; //age后加?,表示可选属性,可有可无
}
let mary:Person = {
id: 1;
name: 'mary';
}
mary.id = 2 //报错
5、函数
ts中声明函数类型:
ts中冒号后面都是在声明变量类型
。
//可选参数z后不能再接其他参数,会报错
//参数个数要正确,除了可选参数可有可无,其他都要存在
function add(x:number,y:number,z?:number):number{
if(typeof z === "number"){
return x+y+z
}else{
return x+y
}
}
//函数参数x,y,z均为number类型,返回值也为number类型
//函数表达式写法
let add = (x:number,y:number,z?:number):number => {
if(typeof z === "number"){
return x+y+z
}else{
return x+y
}
}
let add2:string = add //错误,两边函数返回值类型不一致,不能直接赋值
//正确写法
let add2:(x:number,y:number,z?:number) => number = add
//注意:=>不是声明箭头函数,而是ts中声明函数返回值的一种方式
interface接口也可以声明函数
interface ISum{
(x:number,y:number,z?:number):number //interface内部声明函数返回值用冒号,不用箭头
}
let add2: ISum = add
版权声明:本文为weixin_49343253原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。