1、类型别名
ts中定义类型有时很冗长,用type直接把函数类型定义出来,后续可以直接使用。
定义函数类型:
let sum: (x:number,y:number)=>number
const res = sum(1,2)
//type声明一个函数类型,以后可以直接用
type plusType = (x:number,y:number)=>number
let sum2: plusType
const res2 = sum2(2,3)
定义联合类型:
type num = number | string
let res3:num = 1
let res3:num = 'mary'
let res3:num = true //报错
2、字面量
特殊数据类型,只能是原始数据类型
//num的值只能是1,不能是其他数值
const num: 1 = 1
const num: 1 = 2 //报错
//str的值只能时string,不能是其他字符串
const str: 'string' = 'string'
type direction = 'up' | 'down' | 'left' | 'right'
const d1: direction = 'up' //此时d1可以是上述四个值中的任意一个
3、交叉类型
interface Iname{
name:string
}
type Iperson = Iname & {age:number}
let p:Iperson = {name:'jack',age:1}
上述type的用法有点类似interface的extends,但是type更像是其他类型的别名,interface是一种独特的类型。
|