TS学习笔记1-基础类型

136 阅读2分钟

TS学习文章

1、基本类型有:boolean、string、number、null、undefined

const a:boolean = true
const b:string = '1'
const c:number = 2
const d:undefined = undefined
const e:null = null

2、代表任意的类型:any、unknown

不到万不得已不建议使用any,用它和写js一样了

unknown也表示任意类型,但是它是一个安全类型,unknown做不了任何事情

const a = (params:any)=>{
    return params-1
}
const b = (params:unknown)=>{
    return params-1
}

类型是unknown的返回值会报错

image.png

给参数加类型断言能解决报错

 const b = (params:unknown)=>{
    return params as number -1
}
const c = b(2)
const d = b('xxx3www')
console.log('%c [  ]-20', 'font-size:13px; background:pink; color:#bf2c9f;', c,d)

打印结果 c=1 d=NaN

3、代表没有的类型:void

一般用于函数没有返回值

const a = (params:number):void=>{}

4、永远不存在的值:never

在函数中抛出错误或者死循环了,那么它的返回值就是never

never 类型是任何类型的子类型,也可以赋值给任何类型。

没有类型是 never 的子类型,没有类型可以赋值给 never 类型(除了 never 本身之外)。 即使 any也不可以赋值给 never 。

// 异常
function fn(msg: string): never { 
    throw new Error(msg)
}
  
// 死循环 
function fn(): never { 
    while (true) {}
}

5、数组类型与元组类型

const a:string[] = ['1','xxx']

在数组里只能写相同类型的数据,不然就会报错,想要在数组里放入不同类型的数据,并且已经知道数组的长度和类型,就可以用元组类型来定义

const a:[string,number] = ['111',1]

类型和内容要一一对应,不然会报错

// 错误写法
const a:[string,number] = [111,1]
const b:[string,number] = [111,'1']
const c:[string,number] = ['111',1,2]

但是可以往数组里push你定义的类型的数据

例如上面的例子你可以push数字或者字符串到数组,不能push其他的类型。