TypeScript 函数箭头表达式返回对象
Posted
技术标签:
【中文标题】TypeScript 函数箭头表达式返回对象【英文标题】:TypeScript function arrow expression returning object 【发布时间】:2012-09-30 07:56:01 【问题描述】:我有这样的情况:
interface MoverShaker
getStatus(): speed: number; frequency: number; ;
function GetMoverShaker() : MoverShaker
return
getStatus: () => speed: 2, frequency: 3
我收到这样的错误:当前范围内不存在名称“频率”。在 TypeScript 中可以进行这样的构造吗?如果我使用这种结构,那么一切正常:
function GetMoverShaker(): MoverShaker
return
getStatus: () =>
return speed: 2, frequency: 3
【问题讨论】:
【参考方案1】:您可以添加括号:
() => (x:1,y:2)
这使解析器明白 不是代码块的开头。
【讨论】:
你也可以通过演员来做到这一点。() => <any>x:1,y:1
我不喜欢投射到 any。实际上,在向接口添加新属性时,我也被强制转换为所需的输出接口类型。当我从(任何)对象文字进行显式转换时,即使文字缺少新属性,VS Code 也没有标记任何错误。【参考方案2】:
在您的第一个语句中,您没有返回对象。
如果您想忽略返回 object
的箭头函数中的 return
关键字,则需要将直接返回的值包装在 ()
中。
这会让你的函数看起来像这样
function GetMoverShaker() : MoverShaker
return
getStatus: () => ( speed: 2, frequency: 3 )
【讨论】:
以上是关于TypeScript 函数箭头表达式返回对象的主要内容,如果未能解决你的问题,请参考以下文章