# 函数的两种声明方式

  1. 通过function关键字来声明
function sum(a: string, b: string):string {
    return a+b;
}
sum('a','b')
  1. 通过表达式方式声明
type Sum = (a1: string, b1: string) => string;
let sum: Sum = (a: string, b: string) => {
    return a + b;
};

可选参数

// 可选参数必须在其他参数的最后面
const sum5 = (a:string, b?:string) => a + b;

默认参数

// 默认参数必须在其他参数的最后面
const sum6 = (a:string, b:string = 'a') => a + b;
sum6('a')

剩余参数

const sum7 = (...args:number[]) => console.log(args)
sum7(1, 2, 3, 4, 5)

函数的重载

function toArray(val:number):number[]
function toArray(val:string):string[]
function toArray(val:string|number) {
  if (typeof val == 'string') {
    return val.split('')
  }
  return val.toString().split('').map(item=>parseInt(item))
}

toArray(1)
toArray('1')