LoginSignup
0
0

More than 5 years have passed since last update.

TypeScriptで関数宣言の実処理部分に()と{}を使う時の違い

Posted at

結論

() を使う場合は return を書かなくてよくなる。

Playgroundで確認

()を使う場合

TypeScript

const func1 = (arg: string): string => (
    arg + 'a'
)

Javascript

var func1 = function (arg) { return (arg + 'a'); };

return を書いていなくても、実処理部分で評価された式の結果を返している。
そのため、これは構文エラーになる。

// Expression expected.
const func1 = (arg: string): string => (
    return arg + 'a'
)

また、複数文に渡る処理も書くことができない。

// Type '(: any, ret?: string) => any' is not assignable to type 'string'.
const func1 = (arg: string): string => (
    const ret = arg + 'a';
    ret + '1';
)

{}を使う場合

const func2 = (arg: string): string => {
    return arg + 'b';
}
var func2 = function (arg) {
    return arg + 'b';
};

returnは自分でつける必要があるため、下の書き方は戻り値の方が合わずエラーとなる。

// A function whose declared type is neither 'void' nor 'any' must return a value.
var func2 = function (arg) {
    arg + 'b';
};
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0