Typescript: 返回原语和返回对象之间的 Lambda 语法不同

创建于 2016-10-31  ·  1评论  ·  资料来源: microsoft/TypeScript



TypeScript 版本: 2.0.3 / nightly (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

最有用的评论

TypeScript 遵循 ES 规范,并且根据规范,您的第二个示例是箭头函数,其中 body 是包裹在{ }函数体,因此val: 3被解释为带有标签val标记语句3表达式语句。 为了使其成为返回对象文字的箭头函数,您需要将其包装在括号中:

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

相关链接: MDN:箭头函数,部分Returning object literals

>所有评论

TypeScript 遵循 ES 规范,并且根据规范,您的第二个示例是箭头函数,其中 body 是包裹在{ }函数体,因此val: 3被解释为带有标签val标记语句3表达式语句。 为了使其成为返回对象文字的箭头函数,您需要将其包装在括号中:

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

相关链接: MDN:箭头函数,部分Returning object literals

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

kyasbal-1994 picture kyasbal-1994  ·  3评论

blendsdk picture blendsdk  ·  3评论

jbondc picture jbondc  ·  3评论

fwanicka picture fwanicka  ·  3评论

manekinekko picture manekinekko  ·  3评论