// 函数重载声明
function processString(str: string): string;
function processString(str: string, toUpperCase: boolean): string;
// 函数实现
function processString(str: string, toUpperCase: boolean = false): string {
return toUpperCase? str.toUpperCase() : str;
}
可选参数、默认参数与函数重载的协同工作阐述
- 函数重载声明:通过函数重载,我们可以为同一个函数定义多个不同的签名。这里定义了两个签名,一个只接受一个字符串参数,另一个接受一个字符串参数和一个布尔参数。这样调用者在调用函数时,TypeScript编译器可以根据传入的参数数量和类型来确定调用的具体实现。
- 可选参数和默认参数:在实际的函数实现中,使用了默认参数
toUpperCase: boolean = false
。这意味着如果调用者只传入一个字符串参数(符合第一个重载签名),则toUpperCase
会使用默认值false
。如果调用者传入两个参数(符合第二个重载签名),则会使用传入的布尔值来决定是否将字符串转换为大写。所以,可选参数和默认参数与函数重载共同工作,既提供了灵活的调用方式,又通过类型检查保证了代码的安全性。