我只是从here学习TypeScript,在Function Overloads部分,得到了一个'undefined'错误,就像我说我是TypeScript上的新手,不知道发生了什么以及如何解决它,请帮助!
以下是摘录:
function foo_overload(s: string): void;
function foo_overload(n: number, s: string): void;
function foo_overload(x: any, y?: any): void {
console.log(x);
console.log(y);
}
foo_overload("Jack")
foo_overload(50, "Zhao");
当我编译并执行它时,输出如下:
Jack
undefined
50
Zhao
“未定义”是什么?
答案 0 :(得分:1)
您的模式匹配效果很好,直到您点击function foo_overload(x: any, y?: any):
。
在该函数中,当您将y
声明为可选时,使用y
调用console.log(y)
,因此它返回undefined,就像在第一个函数调用中一样,您没有提供y
值(杰克之后没有任何内容)。
希望它有所帮助!