函数声明 和 函数表达式
// 函数声明function sum(x, y) {return x + y;}// 函数表达式let mySum = function (x, y) {return x + y;};
一个函数有输入和输出,要在 TypeScript 中对其进行约束,需要把输入和输出都考虑到,其中函数声明的类型定义较简单。
function sum(x: number, y: number): number {return x + y;}
输入多余的(或者少于要求的)参数,是不被允许的
function sum(x: number, y: number): number {return x + y;}sum(1, 2, 3);// 编译报错:多了1个参数
可选参数
输入多余的(或者少于要求的)参数,是不允许的,与接口中的可选属性类似,我们用 ? 表示可选的参数
可选参数必须接在必需参数后面,可选参数后面不允许再出现必需参数了
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;}};interface ISum {(x: number, y: number, z?: number): number;}let add2: ISum = add;
在 TypeScript 的类型定义中,=>用来表示函数的定义,左边是输入类型,需要用括号括起来,右边是输出类型
