005-接口-函数
时间:2023-11-28 16:37:02
- 返回结果很常见
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; };