TypeScript文档地址: Function
声明方式
:::info
在我们声明函数的时候,要关注的主要两点:约定输入、约定输出
意思就是规定入参的类型,以及返回值的类型
:::
示例
// 约定输入, 约定输出// 格式: (参数: type , 参数:type) : 返回类型function add(x:number, y:number):number{return x+y // 必须是number}add(1,2) // 参数一定要一致,多或少都不行// 可选参数// z是可选参数,注意的是,可选参数一定要放在参数的后面// 否则会报错function add(x:number, y:number, z?:number):number{if(typeof z === 'number'){return x + y + z} else {return x + y}}// 函数表达式如何声明const add = (x:number, y:number, z?:number):number => {if(typeof z === 'number'){return x + y + z} else {return x + y}}// 我们会发现这时的add的类型是:// 这个时候这个函数本身也是一个类型,add是这个函数类型。// const add: (x: number, y: number, z?: number) => number// 所以,以下赋值会报错// 不能将类型“(x: number, y: number, z?: number) => number”分配给类型“string”。let add2: string = add;// 正确的赋值方法,注意,在ts中,凡是在:后面的都代表类型// 需要注意的是这个 => 符号,并不是代表es6的箭头函数// 而是ts中声明函数类型返回值的方法。let add2: (x:number, y:number, z?:number) => number = add;// 但是这样写很累赘// 所以,我们可以使用interface去描述函数类型interface ISum{(x:number, y:number, z?:number):number}let add3: ISum = add;
