Typescript学习笔记-变量类型

  • Post author:
  • Post category:其他


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 版权协议,转载请附上原文出处链接和本声明。