Typescript: プリミティブを返すこととオブジェクトを返すことでラムダ構文が異なる

作成日 2016年10月31日  ·  1コメント  ·  ソース: microsoft/TypeScript



TypeScriptバージョン: 2.0.3 /毎晩(2.1.0-dev.201xxxxx)

コード

// A *self-contained* demonstration of the problem follows...
const fn_prim = () => 3;
const fn_obj = () => {
    val: 3
};

予想される行動:
私はそれがうまくコンパイルされることを期待しています。 fn_primは呼び出されたときに3を返し、 fn_objは呼び出されたときに{ val: 3 }を返す必要があります。

実際の動作:
val: 「未使用のラベル」エラー

Question

最も参考になるコメント

活字体は、ESの仕様およびごとに以下の仕様あなたの2番目の例では、体がある矢印機能である関数本体に包まれた{ }のでval: 3ラベルで標識された文として解釈されるvalおよび式3を含む式ステートメント。 オブジェクトリテラルを返す矢印関数にするには、親でラップする必要があります。

const fn_obj = () => ({
    val: 3
});

関連リンク: MDN:矢印関数、セクションReturning object literals

>すべてのコメント

活字体は、ESの仕様およびごとに以下の仕様あなたの2番目の例では、体がある矢印機能である関数本体に包まれた{ }のでval: 3ラベルで標識された文として解釈されるvalおよび式3を含む式ステートメント。 オブジェクトリテラルを返す矢印関数にするには、親でラップする必要があります。

const fn_obj = () => ({
    val: 3
});

関連リンク: MDN:矢印関数、セクションReturning object literals

このページは役に立ちましたか?
0 / 5 - 0 評価