Unionタイプと例外処理

4709 ワード

1. union type


Union typeは関数のパラメータを多形化することができる.
多形性とは、1つのオブジェクトに複数のタイプを持つことができることを意味します.
とにかく多形性を与えるためにはどうすればいいのでしょうか.
このような関数が存在すると仮定します.

function printId(id:number|string){
	...
}
さあ.関数printIdのパラメータidが2つのタイプの1つを含む場合でも、
問題のないコードが作成されました.
では、このコードで入力したパラメータを使用してメソッドをロードします.
function printId(id:number|string){
	console.log(id.toUpperCase()) // error
}

エラーが発生します.
因子を2つのタイプの1つに設定することを知っていますが.
numberなのかstringなのかわかりませんが、toUpperCase()関数を使うだけです
理由は認められない.
この場合、異常処理を行ってください.
function printId(id:number|string){
	if(typeof id==='string'){
		console.log(id.toUpperCase());
	}else{
		console.log(id);
	}
}

printId('qwer');
typeの一般的なメソッドを使用すると、エラーは発生せず、そのまま使用すればよい.
function getFirstThree(x:number[] | string){
	return x.slice(0,3);
}