返回对象文字的TypeScript lambda的最简单语法

Dre*_*kes 28 typescript

考虑JavaScript函数:

function(o) { return o.a; }
Run Code Online (Sandbox Code Playgroud)

在TypeScript中,以下简写是等效的:

o => o.a
Run Code Online (Sandbox Code Playgroud)

有没有办法将这种速记应用于以下功能?

function(o) { return { a: o.a, b: o.b }; }
Run Code Online (Sandbox Code Playgroud)

显而易见的转换不起作用,因为开括号({)被解释为指示需要一个块:

o => { a: o.a, b: o.b }                // doesn't work

o => { return { a: o.a, b: o.b }; }    // works
Run Code Online (Sandbox Code Playgroud)

Rya*_*ugh 52

在这种情况下,没有办法让语法解释{作为对象文字而不是块语句,但你可以使用括号来强制它被解释为表达式:

var x = (t) => ({ n: t });
Run Code Online (Sandbox Code Playgroud)