TypeScript速成

1、类型推断

这里的str已经推断为string类型,不能像JavaScript一样直接给str赋值number类型

2、类型注解

let str:string='abc'

或者

let str:string
str='abc'

3、类型断言

因为typescript会判定这个item可能为undefined类型,但是我们人为可以确定item一定是number类型,所以要符合typescript的规则需要进行断言操作

未断言

断言后

let numArr=[1,2,3]
const result=numArr.find(item => item > 2 ) as number
console.log(result*5)

4、基础类型和联合类型

基础类型

let v1:string='abc'
let v2:number=10
let v3:boolean=true
let nu:null=null
let un:undefined=undefined

联合类型

//赋值只能为string类型或者null
let v4:string|null=null
//赋值只能为1或者2或者3
let v5:1|2|3=2

5、数组、元组、枚举

数组

//不建议写第一种
let arr1=[1,2,3]
let arr2:number[]=[1,2,3]
let arr3:Array<string>=['a','b','c']

元组

let t1:[number,string,number]=[1,'a',2]

修改元组的话只能修改为同类型的数据

比如t1[0]='b'就会报错,t1[0]=3就是对的

元组定义的数据可有可无,但是索引为0的不可以为无

let t1:[number,string?,number?]=[1]

枚举

enum myEnum{
    A,
    B,
    C
}
console.log(myEnum.A)
console.log(myEnum[0])

6、函数

​
function myFn1(a:number,b:number):void{
    console.log(a+b)
}

function myFn2(a:number,b:number):number{
    return a+b
}

function myFn3(a=10,b:string,c?:boolean,...rest:number[]):number{
    return 100
}
myFn3(20,'a',true,1,2,3)
myFn3(30,'b')

​

7、接口

通常用来进行对象的定义

interface Obj{
    name:string,
    age:number
}
const obj1:Obj={
    name:'a',
    age:10
}
const obj2:Obj={
    name:'a',
    age:10
}

8、类型别名

type myUserName=string|number
let a:myUserName='abc'
let b:myUserName=10

9、泛型

function myFn<T>(a:T,b:T):T[]{
    return [a,b]
}
myFn<number>(1,2)
myFn(1,2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值