Typescript 从入门到放弃系列(四)-函数类型

244 阅读1分钟

一.函数的两种声明方式

  • 通过 function 关键字来进行声明
function sum(a: string, b: string): string {
  return a + b;
}
sum("a", "b");

可以用来限制函数的参数和返回值类型

  • 通过表达式方式声明
type Sum = (a1: string, b1: string) => string;
// let sum: Sum = (a: string, b: string) => {
//     return a + b;
// };
let sum: Sum = (a, b) => {
    return a + b;
};
console.log(sum('hello', 'james'));
// hellojames

二.可选参数

let sum = (a: string, b?: string):string => {
    return a + b;
};
sum('a'); // 可选参数必须在其他参数的最后面

三.默认参数

let sum = (a: string, b: string = "b"): string => {
  return a + b;
};
sum("a"); // 默认参数必须在其他参数的最后面

四.剩余参数

const sum = (...args: string[]): string => {
  return args.reduce((memo, current) => (memo += current), "");
};
sum("a", "b", "c", "d");

五.函数的重载

function toArray(value: number): number[]
function toArray(value: string): string[]
function toArray(value: number | string) {
    if (typeof value == 'string') {
        return value.split('');
    } else {
        return value.toString().split('').map(item => Number(item));
    }
}
toArray(123); // 根据传入不同类型的数据 返回不同的结果
toArray('123');