TypeScript 数据类型

一、number 类型

let num:number=123 //十进制
num=222
let num2:number=100 //十进制
let num1:number=0b1011 //二进制 注意:二进制只能是0 和1
let num3:number=0o456 //八进制
let num4:number=0x123abc //16进制

二、boolean 类型

let flag:boolean=true
     flag=false
     flag=20>30

三、string 字符串类型

/类型注解加可以也可以不加,到以后也会推倒出来
const name1="jiang"
const age1=18
let message2:string=`name1:${name1} age1:${age1}` //模版字符串拼接

四、Array 数组类型

//1.第一种写法
const names:Array<string>=[]
//2.第二种方式
const names2:string[]=[]  //推荐

五、对象类型(使用推倒类型)

const info={
    name:"jiang",
    age:18
}

六、null 和 underfine 类型

//null 的类型 只有一个值 就是 null
const n1:null=null
//undefined 的类型 只有一个值 undefined
const h2:undefined=undefined

七、any 类型

在某些情况下,我们无法确定一个变量的类型,并且可能它会发生一些变化,这个时候我们可以使用any 类型(使用场景:在不想给某些JavaScript 添加具体的数据类型时


let message:any="hellowx"
message=123
message=false
message=null

 八、unknown 类型

1.unknown 类型只能赋值给any 和 unknown类型

2.any类型可以赋值给任意类型

let flag=true
let result:unknown
let message:any=result

九、void  类型(不常用)

void 通常用来指定一个函数是没有返回值的,那么它的返回值就是void类型

     我们可以将null 和undefined 赋值给void 类型,也就是函数可以返回null或者undefined

function sum(num1:number,num2:number):void{  
   //当一个函数值是void 的类型是,函数返回值可以是null
   return null
}
sum(20,30)

十、never 类型

never 表示永远不会发生值的类型,比如一个函数:

  如果一个函数是一个死循环或抛出一个异常,那么这个函数值会返回东西吗?

  不会,那么写void 类型或者其他类型作为返回值类型都不合适,那我们就可以使用never类型


//1.
function foo():never{
    //死循环
    while(true){
    }
}
//2.抛出异常
function bar():never{
    throw new Error()
}

十一、tuple  元组类型

tuple 元组: 多个元素的组合

元组的特点:确定每个元素到底什么类型

//tuple 元组: 多个元素的组合
//举例子:假如需要把这组信息保存到一个数组里面:“jianyy” 16 3.5
//1.数组的弊端 不能知道每个元素的类型
const info:any=["jiang",16,3.5]
//2.元组的特点:确定每个元素到底什么类型
const info1:[string,number,number]=["jiang",16,3]

十二、函数的参数和返回值类型

//给参数加上类型注解:num1:number,num2:number
// 给返回值加上类型注释:():number
function sum(num1:number,num2:number):number{
    return num1+num2
}

十三、匿名函数的参数类型

通常情况下,在定义一个函数时,都会给参数加上类型注解的

const names=["abc","cba","nbc"]
//item根据上下的环境推倒出来的,这个时候可以不添加类型注解
//上下文的函数:可以不添加类型注解
names.forEach(function(item:string){
    //item 来自于数组,数组来自于
})

 十四、对象类型

function printPoint(point:{x:number,y:number}){
    console.log(point.x)
    console.log(point.y)
}
printPoint({x:123,y:321})  //这样写确保比人传进来一定有一个或者y,且值是一个number

十五、可选类型

在一个函数参数里面,有可能遇到这种情况,有的地方可以传这个参数进去,有的地方别人不想传这个参数进去,这时候我们可以用到可选类型 符号: 表示,可以传也可以不传


function printPoint(point:{x:number,y:number,z?:number}){
    console.log(point.x)
    console.log(point.y)
}
printPoint({x:123,y:321})  //这样写确保比人传进来一定有一个或者y,且值是一个number

十六、联合类型

//number | string 联合类型
function printID(id:number|string|boolean){
    //使用联合类型的值时,需要特别小心
if(typeof id==="string"){
    console.log(id.toLowerCase)
}
}
printID(123)
printID("ac")
printID(false)

十七、字面量类型

字面量类型的意义,就是必须结合联合类型

//"hello world" 也可以是作为类型的,叫做字面量类型
// const message:"hello world"="hello world"

let align:'left'|'right'|'center'='left'
align="right"
align="center"

字面量推理:

type Method='GET'|'POST'
function request(url:string,method:Method){}
const options ={
    url:"https://www.hhaha.org/cn",
    method:"POST"   //存在安全隐患,推倒出来的是字符串,也就是也可以是其他任何值
}
request(options.url,options.method as Method) //这里转成具体的就可以是二者之一了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值