typescript
3.4数组类型
数组类型的两种写法:(推荐使用number[]写法)
1 | let numbers :number[]=[1,3,5] |
需求:数组中既有number类型,又有string类型,这个数组的类型应该如何写?
1 | let arr :(number|string)[] = [1,'a',3,'b']//小括号一定要有 |
3.5类型别名
类型别名:为任意类型起别名
使用场景:当同一类型(复杂)被多次使用时,可以通过类型别名,简化该类型的使用
解释:
- 使用type关键字创建类型别名
- 创建类型别名后,直接使用该类型别名作为变量的类型注解即可
3.6函数类型
函数的类型实际上指的是:函数参数和返回值的类型
为函数指定类型的两种方式:
1.单独指定参数、返回值的类型
2.同时指定参数、返回值的类型(这个写法了解就行)
如果函数没有返回值,那么返回值类型为:void
如果函数实现某个功能时,参数可以传也可以不传。这种情况下,在给函数参数指定类型时,就用到可选参数了,比如 数组slice方法,可以是slice()也可以slice(1)还可以slice(1,3)。
解释:
可选参数:在可传可不传的参数名称后面添加❓
注意:可选参数只能出现在参数列表的最后,也就是说可选参数后面不能再出现必须参数。
3.7对象类型
JS中的对象是由属性和方法构成的,而TS中对象的类型就是在描述对象的结构。
解释:
- 直接使用{}来描述对象结构。属性采用属性名:类型的形式;方法采用方法名():返回值类型的形式。
- 如果方法有参数,就在方法名后面的小括号中指定参数类型。比如greet(name: string) :void
- 在一行代码中指定对象的多个属性类型时,使用;来分隔。如果一行代码只指定一个类型属性,可以去掉;就连,都不用添加
1 | let person:{name: string |
对象的属性或方法,也是可选的,此时就用到可选属性了
比如,我们在使用axios({…})时,如果发送GET请求,method属性就可以省略。
3.8接口
当一个对象类型被多次使用时,一般会使用接口(interface) 来描述对象的类型,达到复用的目的。
interface(接口)和type(类型别名)的对比:
- 相同点:都可以给对象指定类型
- 不同点
- 接口,只能为对象指定类型。
- 类型别名,不仅可以为对象指定类型,还可以为任意类型指定别名。
如果两个接口之间有相同的属性或方法,可以将公共 的属性或方法抽离出来,通过继承来实现复用。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小温の博客!
评论














