66

我有这样的情况:

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 }
        }
}
4

2 回答 2

164

您可以添加括号:

() => ({x:1,y:2})

这使解析器明白 { 不是代码块的开头。

于 2013-07-24T19:31:09.570 回答
0

在您的第一条语句中,您没有返回对象。如果要忽略return返回 an 的箭头函数中的关键字,object则需要将直接返回的值包装在().

这将使您的功能看起来像这样

function GetMoverShaker() : MoverShaker {
    return {
        getStatus: () => ({ speed: 2, frequency: 3 })
    }
}
于 2021-09-28T11:09:25.813 回答