2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
ブログ:ココログ
時間のないサイト運営者リング
時間のないサイト運営者リング

« [VirtualBox]VM起動時にsupR3HardenedWinReSpawnエラーが出る場合 | トップページ | TypeScriptメモ(3) クラス »

2014.08.23

TypeScriptメモ(2) 引数の省略、関数のオーバーロード

クラスに行こうかと思ってたが、引数の省略と関数のオーバーロードについて書く。

引数の省略は変数名の後に?をつけると、省略可能になる。省略された場合、変数の値はundefinedになる。

 function hoge(a:string, b?:number) :void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa");

この場合、"hoge:aaa,undefined"と表示される。

省略された時のデフォルト値を指定する方法がある。

 function hoge(a:string, b:number = 10) :void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa");

この場合、"hoge:aaa,10"と表示される。

可変長引数は、変数の前に…を付けて配列する。

 function hoge(a:string, ...b:any[]):void {
	alert("hoge:" + a +"," + b);
 }

 hoge("aaa",10,2);

関数のオーバーロードは、引数の型が違う関数の宣言を書いておき、型の違う引数のところをanyやobjectにした関数本体を宣言する。その関数内で型のを調べて処理を分岐することでオーバーロードっぽいことを実現する。

 function hoge(a:number):void;
 function hoge(a:string):void;

 function hoge(a:any):void {
	if(typeof a == "number") {
		alert("number");
	} else {
		alert("string");
	}
 }
 hoge(18);

この場合、"number"と表示される。

« [VirtualBox]VM起動時にsupR3HardenedWinReSpawnエラーが出る場合 | トップページ | TypeScriptメモ(3) クラス »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/43319/60195449

この記事へのトラックバック一覧です: TypeScriptメモ(2) 引数の省略、関数のオーバーロード:

« [VirtualBox]VM起動時にsupR3HardenedWinReSpawnエラーが出る場合 | トップページ | TypeScriptメモ(3) クラス »


Google

サーチする:
Amazon.co.jp のロゴ









携帯URL