- Published on
TS函数
- Authors

- Name
- 李丹秋
函数类型注释
type GreetFunction = (a: string) => void;
泛型函数
通常编写一个函数,其中输入的类型与输出的类型相关,或者两个输入的类型以某种方式相关。
function firstElement<Type>(arr: Type[]): Type | undefined {
return arr[0];
}
通过一个Type,我们就轻松的将参数和返回值关联起来
泛型限制
如果我们想要给泛型添加一些限制的话,可以使用以下方法
function longest<Type extends { length: number }>(a: Type, b: Type) {
if (a.length >= b.length) {
return a;
} else {
return b;
}
}
函数重载
TS中可以通过函数重载的方式,对一个函数进行不同的实现。
function makeDate(timestamp: number): Date;
function makeDate(m: number, d: number, y: number): Date;
function makeDate(mOrTimestamp: number, d?: number, y?: number): Date {
if (d !== undefined && y !== undefined) {
return new Date(y, mOrTimestamp, d);
} else {
return new Date(mOrTimestamp);
}
}
const d1 = makeDate(12345678);
const d2 = makeDate(5, 5, 5);
const d3 = makeDate(1, 3);
函数重载可以写多个,但是最终函数的实现,一定要考虑所有重载函数的可能性