代码拉取完成,页面将自动刷新
/**
* TypeScript的函数重载签名
* 可以使用 TypeScript 提供的函数重载签名,实现与入参关联的返回值类型,获得更精确的类型标注能力。
*
* 需要注意的地方,
* 拥有多个重载声明的函数在被调用时,是按照重载的声明顺序往下查找的。
* 因此在第一个重载声明中,为了与逻辑中保持一致,
* 即在 bar 为 true 时返回 string 类型,
* 这里我们需要将第一个重载声明的 bar 声明为必选的字面量类型。
*
* 实际上,TypeScript 中的重载更像是伪重载,它只有一个具体实现,其重载体现在方法调用的签名上而非具体实现上。
* 而在如 C++ 等语言中,重载体现在多个名称一致但入参不同的函数实现上,这才是更广义上的函数重载。
*/
function func(foo: number, bar: true): string;
function func(foo: number, bar?: false): number;
function func(foo: number, bar?: boolean): string | number {
if (bar) {
return String(foo);
} else {
return foo * 599;
}
}
const res1 = func(599); // number
const res2 = func(599, true); // string
const res3 = func(599, false); // number
//export {}:解决“无法重新声明块范围变量”错误提示问题
export { }
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。