TypeScript で関数の引数に関数を渡してみる

TypeScript で関数の引数に関数を渡してみる

TypeScriptは静的型付けなので、引数や変数に型を指定する必要があります。

これはJavaScriptと大きく違うところで、バグが少なくなります。

では関数の引数に関数を指定する時の指定方法はどうするか、という点について書いてみます。

簡単に言うと、関数の引数と戻り値を指定した型を指定してあげればよいだけです。

具体的に書くと以下のような感じです。

function param(msg:string):string{
  console.log(msg);
  return msg;
}

function execute(aaa:(prm:string)=> string){
  aaa('aiueo');
}

execute(param);// ここで実行

param関数が引数として渡す関数です。第一引数にstring型を持ち、戻り値としてstring型を返しています。

execute関数はparam関数を引数として持つ関数なので、型を指定する必要があります。

string型ならaaa:stringと簡単なのですが、関数の場合は以下のように記述します。

aaa:(prm:string)=> string

aaaが引数名で、(prm:string)がparam関数の引数部分です。param関数は戻り値がstringなので、アロー関数で戻り値をstringとしています。

上記コードを実行するとコンソールに以下が出力されます。

aiueo

戻り値がvoidの場合は、voidと書けばよいですし、引数が二つある場合は二つの型を指定してあげればよいです。

コメント

タイトルとURLをコピーしました