类型别名

  • type (可以给一个类型定义一个名字)多用于符合类型
type myString = string
type Add = (x: myString, y: myString) => myString

const toAdd: Add = (x: string, y: string) => x + y
console.log(toAdd(1, 2))

函数可选参数

  • 可选参数必须位于必选参数之后
type AddFunc1 = (arg1: number, arg2?: number, arg3?: string) => string // 约束
let toAdd1: AddFunc1 =(x: number, y: number, z: string): string => x + y + z // 函数
console.log(toAdd1(1, 4, '6')) // 调用

使用扩展运算符


const toFunc5 = (x: number, ...args: number[]) => {
  // ...
}

函数重载

  • 不能使用接口或者类型别名定义
function handleData(x: number): number[] // 函数重载
function handleData(x: string): string[] // 函数重载
function handleData(x: any): any { // 函数实体

  if (typeof x === 'string') return x.split('')
  else
    return x
      .toString()
      .split('')
      .map((item) => Number(item))
}
handleData(123) 
//[1,2,3]//function handleData(x: number): number[] (+1 overload)
handleData('123)//["1", "2", "3"]
//function handleData(x: number): string[] (+1 overload)

爬。