# 四.函数类型
前言
函数相关类型的定义
# 1.声明方式
- 直接声明
function sum(a: string, b: string): string {
return a + b;
}
sum("a", "b");
1
2
3
4
2
3
4
type
方式声明
type Sum = (a1: string, b1: string) => string;
let sum: Sum = (a: string, b: string) => {
return a + b;
};
1
2
3
4
2
3
4
interface
方式声明
interface Sum {
(a: string, b: string): string
}
let sum: Sum = (a, b) => {
return a + b;
};
1
2
3
4
5
6
2
3
4
5
6
# 2.可选参数
let sum = (a: string, b?: string): string => {
return a + b;
};
sum("a"); //可选参数必须在其他参数的最后面
1
2
3
4
2
3
4
# 3.默认参数
let sum = (a: string, b: string = "b"): string => {
return a + b;
};
sum("a"); //默认参数必须在其他参数的最后面
1
2
3
4
2
3
4
# 4.剩余参数
const sum = (...args: string[]): string => {
return args.reduce((memo, current) => (memo += current), "");
};
sum("a", "b", "c", "d");
1
2
3
4
2
3
4
# 5.函数的重载
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");
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14