2017-07-13 5 views
-1

Function OverloadsセクションのTypeScriptをhereから学んでいるだけで、「Undefined」エラーが発生しました。私がTypeScriptで非常に新しいと言ったように、それを修正する方法については、助けてください!ここでFunction Overloadingを使用した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 

は "未定義" それは何ですか?

+2

オプションのパラメータに値を渡していないときは 'y'です。 *「完全に狩猟鳥」*とは、正確には何を意味しますか? – jonrsharpe

+0

'undefined'はエラーではありません。それは価値です。 – Ryan

+0

@ライアン、申し訳ありません、あなたは正しいです、なぜ私はこれを "未定義"にすることができるのですか? – Jack

答えて

1

パターンマッチングは、function foo_overload(x: any, y?: any):を押すまでうまく機能します。その関数で

、オプションのようにyを宣言しながら、あなたはconsole.log(y)yを呼び出し、それが最初の関数呼び出しのように、undefinedを返します、あなたは(ジャックの後には何もありません)y価値を提供していませんでした。

希望すると助かります!

+1

あなたは正しいです、私はyを出力していますが、何も与えられていないので、「未定義」が表示されます。 – Jack

関連する問題