4.ts函数类型

70 阅读1分钟
  • 函数的两种声明方式
  1. 通过function关键字来声明
  2. 通过表达式方式声明
function numSum(a: number, b: number): number {
  return a + b
}
console.log(numSum(1, 4))

// 通过表达式方式声明
type numSum1 = (a: number, b: number) => number
let num: numSum1 = (a: number, b: number) => {
  return a + b
}
console.log(num)
  • 可选参数
let sumOrab = (a: string, b?: string): string => {
  return a + b
}
sumOrab('1')
  • 默认参数
let sumOrStr = (a: string, b: string = 'b'): string => {
  return a + b
}
console.log(sumOrStr('a'))
  • 剩余参数
const sumArgs = (...args: string[]): string => {
  return args.reduce((pre, next) => pre += next, '')
}
console.log(sumArgs('a', 'b', 'c', 'd'))
  • 函数的重载
function toArray(value: number): number[]
function toArray(value: string): string[]
function toArray(value: number | string) {
  if (typeof value == 'string') {
    return value.split('');
  } else {
    return value.toString().split('').map(item => Number(item));
  }
}
toArray(123); // 根据传入不同类型的数据 返回不同的结果
toArray('123');