特定の値を引数として許可する
共通処理で特定の値のみを引数として許可したい場合は良くある事で、これまでenum
を使用してきたが、どうやらtype alias
と言う技術があるようなので試してみた。
宣言でtypeを使用する
書式はtype 変数名 = 値1 | 値2 | ...... ;
となる。サンプルソースを用意したのでそれを見て参照してもらったほうが早いだろう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
type SortType = "asc" | "desc" | "hoge"; function hoge(sort?: SortType): void { if (typeof sort === "undefined") { sort = "asc"; } console.log(sort); } hoge(); // asc を出力 hoge("asc"); // asc を出力 hoge("desc"); // desc を出力 hoge("hoge"); // hoge を出力 // hoge("abcd"); エラーになる。 |
hoge関数の引数の型としてtype宣言したSortTypeを指定している。そのおかげで引数として渡せる値はtype宣言した値に制限することができる。type宣言した値以外を使うとコンパイルエラーになるため安全性も確保できるし、enumやinterfaceを使うよりスマートに記載することができる。