- 常见有返回结果
const mySum = function(x: number, y: number): number {
return x + y;
};
- 用接口定义函数形状
interface Searh () {
// 定义入参:source、substring类型和返回值的类型
(source: string, subtring: string): boolean;
}
let mySearch: Search = function (source: string, subtring: string) {
return source.search(substring) !== -1;
};
- 可选参数,同object可选属性
const mySum = function(x: number, y: number, isAdd?: boolean): number {
if (isAdd) return x + y;
return x - y;
};
mySum(5, 1, true);
mySum(1, 2);
注意:
a、可选参数必须在必选参数后面声明;
b、若函数参数有默认值,则会解释为必选参数;
- 剩余参数
function pushHandle = (arr: any[], ...items: any []) {
items.forEach(item => {
arr.push(item);
});
};
let arr = [];
pushHandle(arr, '1', 2, true, null);
注意:
剩余参数为最后一个参数,其后不可以再添加其他参数
- 重载
参数接收到不同数量或者类型时,做不同的处理;
声明函数时使用function关键字,ts中不支持箭头函数的重载
分为两个部分:定义签名、实现签名;
function revere (x: number): number;
function revere (x: string): string;
function revere (x: number | string): number | string | void {
if (x == 'number') {
return x + 1;
}
return x;
};