【TS学习笔记】typescript的变量与数据类型

ts的数据类型,为了使编写的代码更规范,更有利于管理,增加了类型校验

一、字符串(string)

可以用单引号’ ’ 双引号 " " 或者反引号

let heroName:string = "安其拉"

二、数字类型(number)

let age:Number =18;
age = 18.9
age =-17

三、布尔值(Boolean)

true / false 不可以像js中用0、1代替


let isSingleDog:boolean = true;
isSingleDog =false
isSingleDog =1 //报错 Type 'number' is not assignable to type 'boolean'.

四、undefined 和 null 唯一的值

这两种类型除了本身,没有其他值

let  undf:undefined = undefined;
let  nl:null = null;

五.数组类型

定义一个数组,有两种方式:
1. let 数组名:类型[] =[值1,值2]
可以在元素类型后面接上 [],表示由此类型元素组成的一个数组:

let list: number[] = [1, 2, 3];

2.let 数组名:Array<类型> =[值1,值2]
第二种方式是使用数组泛型,Array<元素类型>:

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

特点:类型限制 长度不限

六.元组类型(Tuple)

元组类型是数组的一种,表示一个已知元素数量和类型的数组,各元素的类型不必相同。 比如,你可以定义一对值分别为 string和number类型的元组。
let tup:[string,number,boolean]=['貂蝉',18,false]
tup=['吕布',20,true]

访问元组中元素和长度

console.log(tup[0])
console.log(tup.length)

特点:1规定元组长度 2.为每个元素规定类型

七、枚举类型

enum类型是对JavaScript标准数据类型的一个补充。 像C#等其它语言一样,使用枚举类型可以为一组数值赋予友好的名字。
声明语法:

 enum 枚举名{
    
    
      枚举项1 =枚举值1
      枚举项2 =枚举值2
  }

枚举项一般用英文或者数字
枚举值用整型数字,可以默认枚举值,编译时 自动加上 0,1,2,。。。

 //1创建枚举
 enum Gender{
    
    
     Boy  = 1,
     Girl = 2,
     Unknow=3
 }
 console.log(Gender.Boy) //1
 console.log(Gender.Girl)//2
 console.log(Gender.Unknow)//3
 //2使用枚举
 let userSex:Gender =Gender.Boy
 console.log(userSex)
 if(userSex == Gender.Boy){
    
    
     console.log('相等','是男的')
 }else{
    
    
     console.log('不是男的 ',userSex)
 }

如果没有为元素赋值,默认情况下,从0开始为元素编号,也就是下标

enum Gender2{
    
    
    Boy ,
    Girl ,
    Unknow
}
console.log(Gender2.Boy) //0
 console.log(Gender2.Girl) //1
 console.log(Gender2.Unknow)//2

八、任意类型

any 任意类型,一般在获取DOM对象时使用。接收用户输入,或者第三方代码库时,也可以使用any

九、void类型

没有类型,一般用在没有返回值的函数

十、never类型

never不存在的值的类型,一般用于抛出异常 或无限循环的 函数返回类型
never是ts中的底部类型,所有类型都是never类型的父类,所以never类型值可以赋给任意类型的变量

十一、类型推断

如果变量的声明和初始化时在同一行,可以省略变量类型的声明

let hero='sting'
hero=18   //报错,因为hero的类型被推断为string类型

十二、联合类型

表示取值可以为多种类型中的一种
语法声明: let 变量名:变量类型1 | 变量类型2 = 值

let dogName :string|null =prompt('请输入狗狗名称')
console.log('hello',dogName)

猜你喜欢

转载自blog.csdn.net/weixin_41884808/article/details/109219070